自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

唯一的专栏

静静的等待了千年~

  • 博客(61)
  • 资源 (68)
  • 收藏
  • 关注

原创 emuelec 镜像太大无法写入U盘解决方法

emuelec 写入U盘

2022-09-10 09:12:18 9115 1

原创 将微信文章保存为PDF文件收藏

有时候,收藏着的微信文章就因为被删除或者和谐的原因不见了,所以我们可以用一些手段来保存成PDF来收藏。在这里我们会用puppeteer作为浏览器加载渲染文章,并且再用其保存成pdf。所以用以下的步骤:创建浏览器对象打开文章页面 因为页面的图片是懒加载的原因,控制puppeteer浏览器缓慢滚动到底部来加载完整页面 调用API直接保存成PDF(当然,也可以保存成图片)const puppeteer = require('puppeteer');(async () => { ...

2022-03-24 12:25:58 1491

原创 Android(TV)下挂载webdav作为普通的文件目录使用

webdav是一个基于http的文件共享协议,怎么搭建就不谈了。 首先我们需要有一个可以访问的webdav服务,当然包括账号密码。在windows下可以用raidrive,linux下可以用rclone。因此本文也是在android采用rclone,不过是叫另外一个名字,rcx(Releases · x0b/rcx (github.com))下载对应版本的app既可以。 安装完app后,选择右下角的+,然后协议选择Webdav,然后next,name、链接(包括http://ip...

2022-03-17 16:48:17 13719 1

原创 mac下,映射esc键为command 退出窗口

之所以有这个需求,源于我刚刚换了macbook,习惯了在win下面按esc退出微信窗口以及qq窗口,然而mac下只能够用command+w,实在习惯不了。目前有两个软件方案可以实现,将esc映射成command+w的需求。首先是收费的BetterTouchTool,功能非常多,支持键盘映射只是小菜一碟,然而收费,而且还不便宜。因此我选择了第二个方案karabiner-element(Karabiner-Elements is a powerful utility for keyboard custo...

2021-04-17 01:47:03 3194 2

原创 macbook m1 big sur 登录forticlient ssl-vpn的方式

不确定是系统还是m1芯片的问题,pc版本客户端无法登录,ios/ipad版本的登录完之后,无法访问内网网络,遍巡许久,在github上看到开源的第三方方案,https://github.com/adrienverge/openfortivpn,安装完之后运行sudo openfortivpn ip:端口--username=用户名 --pppd-use-peerdns=1 运行既可。...

2021-03-09 17:49:00 6574 9

原创 Mybatis-plus中输出组装好的SQL

在本地开发调试过程中,有时候需要输出PreparedStatement 的调用的SQL,也就是将每一个SQL调用语句都输出,按照文档的介绍,可以在配置中添加如下日志输出的配置。# 配置slq打印日志mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 然而,可以观察日志,知道日志是分别输出若干部分带有"?"参数的SQL语句,也就是需要我们人手去替换"?",这样...

2021-01-20 00:52:51 4728 4

原创 java基于browsermob实现代理服务器

在日常应用中,我们希望代理服务器可以拥有可以进行定制的能力,比如在浏览器透明的情况下修改浏览器的请求内容,响应结果,我们可以用browsermob来实现这一功能. <dependency> <groupId>net.lightbody.bmp</groupId> <artifactId>browsermob-core</artifactId> ...

2020-06-29 15:30:19 2485

原创 JSON与CSV相互转换

在这里我使用jackson相关的库来操作。在maven中添加以下依赖。<dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-csv</artifactId> <version>2.9.8</version></dependency><de

2020-06-03 18:04:09 1757 1

原创 客户端发起超过6w个连接

在内存、cpu、带宽足够的情况下,当我们编写客户端代码发起socket连接,在连接开到超过6w多之后就会开始出现无法分配地址的错误。因为,socket客户端在发起连接到server的同时也会开启一个端口进行通讯,client在server那边的标记是ip:port。port的上限是65535,没办法突破这个大小,那我们只需要增加ip的选择就可以了,那样可以开的客户端连接的数量=ip数量*6...

2020-04-30 16:04:27 504

原创 Linux ssh允许root远程密码登录

1、设置root密码sudo passwd root2、设置 sshcat /etc/ssh/sshd_configPermitRootLogin yesPasswordAuthentication yessystemctl restart sshd

2020-01-10 17:02:40 1112

原创 springcloud 在Hystrix中出现拒绝服务的熔断异常

java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.FutureTask@3f54147b rejected from java.util.concurrent.ThreadPoolExecutor@55407c43[Running, pool size = 10, active thre...

2020-01-07 14:45:09 1607

原创 利用树莓派搭建家庭NAS简要

利用树莓派搭建家庭NAS简要家庭NAS是用OMV来实现的,目前有两种装法,一种是直接刷ovm4Pi 系统,一种是先安装raspbian(树莓派的debian系统),再安装omv 。本文记录的是用第二种方式安装。1、利用内存卡安装raspbian下载 rom系统 https://www.raspberrypi.org/downloads/raspbian/,建议下载full版本,不用后面额外...

2019-02-11 21:27:18 26206 1

原创 使用intelliji调试 Nashorn java js脚本引擎执行的js文件

    执行复杂逻辑的代码,debug是避免不了的。在java中引入js脚本用来做业务逻辑的动态定制修改,我们用的是jdk1.8的nashorn引擎。    本文章,参考了http://hevi.info/programming-language/java/java-1-8-javascript-engine-nashorn-debugging-javascript-file/https://bl...

2018-03-14 11:30:38 2190 1

原创 String的连接方式

总是忘记,做做笔记本。String c = a+"."+b;会转化为String c = new StringBuilder(b).append(".").append("c").toString();----------------------------String c= a;c+=".";c+=b;会被翻译为:String c = new StringBuilder(a

2017-07-20 10:58:20 4344

原创 flask下对pc站跟m站进行拦截处理(处理手机访问视图处理)

在java中,我们通常会加一个filter进行过滤拦截,然后通过对request和response的处理,从而针对一些不同的请求场景做处理,比如手机访问pc站,需要拦截跳转的m站去。        在Python flask中,我们用装饰器( decorator)来进行拦截处理。        import refrom functools import wrapsfrom fla

2017-05-27 16:51:28 2454

原创 基于zookeeper的分布式一致性配置中心

当同一个项目部署多个节点,或者多个项目部署在不同的jvm实例上,因为没办法共享内存。那共享项目的配置参数就成了一个问题,当然解决的办法很多,一起读数据库,一起读redis/memcahed,读本地缓存,修改的时候再一个个去触发。这些方案或多或少都会有效率或者时效性比较低的问题。    可能是被人问多了几次,我觉得用zk来实现这种配置中心的方案也是很方便的,不怕效率问题的,就实时去读zk。兼顾效

2017-05-22 22:17:15 1893

原创 总结下自己一路走过的java http客户端

这篇文章主要是用来总结自己写代码以来,使用java http客户端的历程,从最开始的原生方式到 httpclient4再到okhttp到现在的unirest,在此只是记录一些demo,没有按使用习惯进行封装。

2017-02-27 00:07:24 4483 1

原创 装饰器模式以及继承的应用场景

最近,看到有朋友在吐槽,说在用redis的client库jedis的连接池的时候,得到的jedis的实例,调用close方法之后,不能回到池里面,而是真的关闭了连接。为什么大家会觉得调用close方法是回到连接池而不是关闭连接呢?这个还要从最常见的JDBC的连接池说起,几乎常见的jdbc的连接池在构造连接的时候都增强了connection类,将其close方法重写为returnPool之类的,调用

2017-01-22 09:45:14 3017

原创 2016年总结以及2017年展望(工作技术篇)

到2016年年底为止,在目前的公司已经差不多一年半的时间了,在现在的公司,作为开发人员,从最开始的亲手编码,到后来的包括现在的需求分析和任务进度管理,感觉慢慢的消耗着自己的一些热情吧,也可以说收获和失望并存着。    项目,作为一家挂着互联网名号,实际上却是以线下销售为主的公司,作为一个后台的项目,除了所谓的业务,所谓颇为蛋碎复杂的业务。我实在不想谈剩下还有什么技术,说白了无非只是增删改查,谈

2017-01-20 12:50:53 885 1

原创 关于nginx的ngx_http_image_filter_module裁剪图片后方向改变的解决方案

使用nginx的ngx_http_image_filter_module进行图片裁剪的方案是图片裁剪一个非常常见的方案,最近提供给app端的图片,需要在部分进行展示的地方进行图片裁剪再加载,以减少图片的加载流量(原图的尺寸非常大)。然而在进行resize的操作之后,却发现图片被调转了方向,这让我很疑惑,因为我并没有进行rotate的操作。    在看了下模块的代码,发现,如果只是简单的resi

2016-12-03 13:03:58 3157 1

原创 RestFul 采用nginx作为请求审计记录工具

RestFul作为通用的json+http传输请求的规范,越来越多的api采用此形式进行交互。不可避免的,需要对其请求的内容进行审计。然而RestFul的Post请求一般采用以下的方式进行请求。curl -H "Content-Type: application/json" -d '{"key":"value"}' http://localhost:8000/hello    这一形式,是将

2016-10-28 13:58:53 2468

原创 maven插件编写与调试

maven常见的插件有compile插件,deploy插件,jetty插件等等,这些插件有的是主动去执行,有的是在maven特定的生命周期中执行。

2016-03-30 13:34:32 3472 1

原创 IE浏览器在地址栏针对param直接输入中文导致乱码的解决方案

这篇文章算是对我前几年在做搜索引擎项目时候无法解决的一个问题画一个句号吧,用处不大,不过可以弥补下自己的一个遗憾。    当时的场景是这样子的,本来正常人的习惯总是在搜索框输入正常搜索词然后进行搜索,但是总有一些用户会自认为聪明的,从地址栏复制出URL,然后改parameter然后进行访问,类似于http://www.xxx.com/search?keyword =%E4%B8%AD%E6%9

2016-01-23 03:46:47 8506

原创 nginx模块开发-增加nginx内置变量

众所周知,nginx中set $xxx 'hello';就是通过用set指令给变量xxx设置hello的字符串值,在nginx中调用值的话,只需要$xxx就可以使用这个变量。  然而在nginx中,我们还可以直接用下面的变量,直接就可以获取对应的值。$arg_参数名    在location中获取客户端请求的参数xx?name=123  那$arg_name就是对应的值123$args

2016-01-15 11:46:18 8149

原创 nginx模块开发-在handle函数中获取页面请求的参数

可以用下列的函数:ngx_int_tngx_http_arg(ngx_http_request_t *r, u_char *name, size_t len, ngx_str_t *value)具体的实例如下:ngx_http_xxx_handle( ngx_http_request_t *r, ngx_str_t *callback) if (

2016-01-02 14:23:10 2472

原创 windows下采用eclipse与cygwin构建调试nginx插件

nginx在windows下用vc或者是mingw会存在或多或少的问题,它天然适合在linux下开发使用,但是想在windows进行开发使用的话,最好的方式就是采用cygwin进行linux环境的模拟,开发工具的话,可以选用eclipse CDT进行开发调试。    首先要安装cygwin(注意看网站,有国内的源的话,下载起来飞快),cygwin对于编译nginx来说的话,只需要在instal

2015-12-31 16:29:22 3238 2

原创 java String类型的格式化

String类提供了静态方法String.format(String formatContent,Object ... value);    在使用上必须使用%d、%f、%s...等等具体制定类型的格式占位符,比如String str = String.format("%d,%s,%d",1,"2",2);这种写法,感觉上非常的不灵活。    在记录日志的时候,我们习惯了 logger.i

2015-11-27 16:41:22 1315

原创 maven compile的web项目时指定/WEB-INF/lib 目录作为额外的库目录

有一些冷门的jar包,自己又比较懒,不想上传上nexus,就直接放web项目中的/WEB-INF/lib目录了,构建的时候,在编译期出错,因为无法依赖那些jar包,此时用maven的compile插件指定该目录为额外的库目录即可。 maven-compiler-plugin 1.7 1.7

2015-11-16 11:55:47 5636 1

原创 nginx_lua案例分析:动态路由实现

这里的路由指的是在web开发中,访问路径以及具体实现内容的映射。比如,/a映射到某个具体的页面,这个就称之为一个路由。而动态路由,顾名思义就是动态添加这种路由映射关系。    在nginx中,通过rewrite和proxy_pass来实现路由映射或者说反向代理,但是这种关系按照传统的配置必须写死在配置文件中,然后通过快速"无缝"重启nginx。虽说是无缝,但是其繁琐的配置和枯燥的重启操作还是无

2015-08-17 09:28:07 9846 1

原创 nginx proxy-pass简单的应用

proxy-pass在网站部署访问中,最经常与rewrite一起用。一般用rewrite进行url的内部重写(地址栏不会改变),然后再通过proxy-pass将请求代理访问后端的web应用。location ^~ /doc/img/ { rewrite "^/doc/img/(.*)$" /$1 break; proxy_pass http://192.168.1.130:80;

2015-07-28 08:40:04 2066

原创 nginx嵌入lua脚本操作redis

此前稍微提过,用nginx里面执行lua脚本,可以执行一些原有无法实现的必须到后端去控制。目前有个需求,是根据不同的传入id,判断其类型,反向代理到不同的项目后端,如果是采用后端来做的话,基本上很难去实现,然而我们在前端用lua去判断ID的类型就OK了,为了保证前端nginx的速度,所以将id的类型存入redis中,由lua去读取redis的数据进行id类型判断。    目前,用在nginx中

2015-05-22 09:41:15 3067

原创 webservice soap脱离客户端代码单独http调试

webservice soap的实现序列化方式默认也是最通用的是采用xml进行序列化以及http协议进行传输的,也就是文本协议传输调用,这样给了我们脱离客户端代码用工具进行调试或者用HttpClient的代码进行各种测试的方便。    目前需要对webservice soap的server端进行压力测试,然而,每次java这边测试的时候都要启动cxf进行对象的序列化和调用,非常损耗客户端机器的

2015-05-13 11:06:27 1382

原创 记20150430平台预迁移

2015年的第一次通宵献给了公司,作为打杂的我与部门几十个同事留下来通宵测试平台预迁移之后的出现的问题,主要是为了记录下问题,以便接下来真正迁移的时候,可以提前把会出现的问题解决。    为什么是平台迁移呢?因为,公司的老的业务平台积累了太多的用户和数据,肯定没办法直接停掉去使用新的,但是如果新、旧两套平台同事存在,等以后业务量大了,要做调整和维护的话,那个难度太过于大。再者另一个原因,公司的

2015-04-30 14:33:02 863

原创 掌握elasticsearch 搜索引擎开发的一般阶段

本文的内容是根据我对es掌握的一些过程阶段的理解,希望有助于入门。安装运行插件安装使用索引新建和数据导入查询以及相关技巧错误排查集群优化

2015-04-27 10:12:40 1715

原创 intellij 开发调试elasticsearch插件

elasticsearch之所以功能比较强大,更多的是因为其插件机制比较灵活,可以直接不需要改动源码的情况下,被es的节点扫描加载。本篇文章就简单的讲一下如何进行调试插件,其实无论是river、analysis或者是其他的plugin,都是差不多的写法,所以我们用其中一个river的插件来演示下如何进行调试。    首先,在github上git clone对应的elasticsearch的源码

2015-04-14 14:15:50 10561 1

原创 linux下采用ps、jstack命令排查命中java应用中占用CPU高的代码

一般情况下,是因为系统出现瓶颈了,才会去进行调优,而调优则要先找出项目代码中的问题,这次针对java应用占用CPU高的代码进行排查。    假设,目前有一个应用在运行过程中会导致CPU居高不下,而无法知道是哪段代码引起的,这个时候,则可以采用本篇文章说的PS命令和jstack命令进行排查命中相关的代码,对于linux下大名鼎鼎的ps命令就不介绍了,我们直接切入主题,在本篇中,我们需要获得对应的

2015-04-03 15:57:01 3013 2

原创 在nginx中采用lua对请求的url进行hash取模

目前有一个需求,是需要将nginx反向代理的后端响应的内容进行缓存,并且要平均的分配到10个自定义的目录中。一说到,自动分配的需求,采用hash取模是最常用也是最简单的方案,其中选择hash的字段(内容)必须是变化最多的。比如请求头里面的host和request_url,肯定选择是request_url,因为其变化的内容比较大。    查看了nginx的官网文档也没有单独对url进行取模的功能

2015-03-30 15:28:15 7686 1

原创 ELK(Elasticsearch,logstash,kibana)无痛安装教程

elk是目前比较新也发展比较快的一套数据分析套件,其中Elasticsearch是用来作为存储和查询引擎的,kibana则是位于其之上的一个UI(更偏向于聚合汇总分析),而logstash则是属于ETL工具(数据的提取转换插入)。    在具体的使用过程中,目前觉得logstash算是比较鸡肋的,因为适用的场景有限,而且要扩展必须自己实现。个人建议,如果对es比较熟悉的,完全可以不需要用这个。

2015-03-20 10:41:32 3544

原创 nginx lua api翻译

nginx的lua模块提供了很多lua的函数API给用户使用,以便让lua更好的操作nginx.

2015-01-20 11:27:35 6195

原创 springmvc 报无法解析视图异常

最近,前端nginx的日志一直在报一些URL的请求后端响应是500状态码,于是缓存其结果,可以看到一直是报一个 javax.servlet.ServletException: Could not resolve view with name 'xxxx'in servlet with name 'Spring MVC Dispatcher Servlet ‘的异常。        分析这些报这

2015-01-15 10:18:54 14263

redis学习手册

redis学习手册,包含了redis从开发到运维的各个层面。

2014-10-27

java高级工程师面试题

java高级工程师面试题

2014-10-27

hadoop实战培训

hadoop实战培训

2014-10-27

J2EE企业级软件开发课程之:MVC和DAO模式

J2EE企业级软件开发课程之:MVC和DAO模式

2014-10-27

vmware虚拟机MAC补丁包unlock-all-v120(vmWare10专用

vmware虚拟机MAC补丁包unlock-all-v120(vmWare10专用

2014-10-27

基于JSP的课程网站毕业设计论文

基于JSP的课程网站毕业设计论文

2014-10-26

Android中文API合集

Android中文API合集

2014-10-26

制作BT5 U盘启动盘制作

制作BT5 U盘启动盘制作 亲测可行

2014-10-26

VM安装MAC教程.doc

想在没有苹果机的情况下开发苹果IOS吗,请参考此文档VM安装MAC教程.doc

2014-10-26

Windows7下用VM安装Mac_OS_X系统

Windows7下用VM安装Mac OS X系统 亲测成功

2014-10-26

The Swift Programming Language中文完整版

The Swift Programming Language中文完整版 市面上不多的教程

2014-10-26

Objective-C程序设计第4版

Objective-C程序设计第4版

2014-10-26

Photoshop新手非常详细的教程

Photoshop新手非常详细的教程 非常值得你下载

2014-10-26

mahout_in_action中文版

mahout是可以跑在hadoop之上的机器学习库,mahout in action是mahout的官方标准教材。这个资料就是mahout in action的中文版。

2014-02-01

vc6 控件使用大全

vc6控件使用大全、包含了常见的控件的使用,绝对值得你拥有。。

2013-05-16

从nginx角度看服务器多进程模型设计

从nginx角度看服务器多进程模型设计,这是一些用来分析nginx的设计思路的资料,从中可以得到很多启发。

2013-05-05

构建高性能Web站点

构建高性能Web站点

2013-05-02

安卓框架最新API

安卓框架最新API,自己收集的。安卓框架最新API,自己收集的。

2013-04-30

VC6 技巧大全

VC6 技巧大全,包含常见的一些VC使用技巧。

2013-04-30

数据库基础阶段-SQL练习

包含数据库的各种查询(里面分别是Oracle版本跟mysql版本,有完整的数据库备份,可以导入后立刻练习)

2013-01-06

java 多线程编程实战指南(核心 + 设计模式 完整版)

Java 高并发编程相关知识, 接下来将阅读该书, 并且进行比较详细的总结, 好记性不如烂笔头, 加油。 Java 多线程编程实战指南。

2018-03-20

区块链系统学习视频文档资料

区块链系统学习视频文档资料,如对区块研究有兴趣的朋友可以看看,收藏了挺久的。好东西。

2018-03-19

神经网络与深度学习

本书是 Michael Nielsen 的 Neural Networks and Deep Learning 的中译本。目前已经完成第二章、第三章、第五章和第六章的内容。后续会进行剩下章节的翻译。如果想要提供意见或者建议,给出翻译

2018-03-15

Redis开发运维实践指南

本手册是Redis在一家中国大陆的中型商业银行做大数据系统工程师中进行的总结归纳,包含开发和运维的各方面的使用、应用场景和最佳实践,以及各个高可用架构的搭建和测试。

2018-03-15

区块链技术指南

区块链技术是金融科技(Fintech)领域的一项重要技术创新。 作为分布式记账(Distributed Ledger Technology,DLT)平台的核心技术,区块链被认为在金融、征信、物联网、经济贸易结算、资产管理等众多领域都拥有广泛的应用前景。区块链技术自身尚处于快速发展的初级阶段,现有区块链系统在设计和实现中利用了分布式系统、密码学、博弈论、网络协议等诸多学科的知识,为学习原理和实践应用都带来了不小的挑战。 本书希望可以探索区块链概念的来龙去脉,剥茧抽丝,剖析关键技术原理,同时讲解实践应用。在开发相关开源分布式账本平台(如超级账本),以及设计基于区块链的企业方案过程中,笔者积累了一些实践经验,也通过本书一并分享出来,希望能推动区块链技术的早日成熟和更多应用场景的出现。

2018-03-15

JS 函数式编程指南

我们将使用 JavaScript 这个世界上最流行的函数式编程语言来讲述这一主题。有人可能会觉得选择 JavaScript 并不明智,因为当前的主流观点认为它是一门命令式(imperative)的语言,并不适合用来讲函数式。但我认为,这是学习函数式编程的最好方式

2018-03-15

java js引擎调试js代码

java js引擎调试js代码,java js引擎调试js代码,java js引擎调试js代码,java js引擎调试js代码

2018-03-14

七周七语言第2版(英文原版)

七周七语言第2版(英文原版),非图片pdf,欢迎下载七周七语言第2版(英文原版),非图片pdf,欢迎下载

2018-03-13

微服务架构与实践

第 1部分 基础篇 第 1章 单块架构及其面临的挑战 . 3 1.1三层应用架构 . 4 1.1.1三层应用架构的发展 4 1.1.2什么是三层架构 . 5 1.1.3三层架构的优势 . 6 1.2单块架构 . 6 1.2.1什么是单块架构 . 6 1.2.2单块架构的优势 . 7 1.2.3单块架构面临的挑战 8 1.3 小结 . 12 第 2章 微服务架构综述 13 2.1什么是微服务架构 . 13 2.1.1多微才够微 . 14 2.1.2 单一职责 . 17 2.1.3 轻量级通信 . 17 2.1.4 独立性 . 19 2.1.5 进程隔离 . 20 2.2 微服务的诞生背景 . 22 2.2.1 互联网行业的快速发展 23 2.2.2 敏捷、精益方法论的深入人心 23 2.2.3 单块架构系统面临的挑战 23 2.2.4 容器虚拟化技术 . 23 2.3 微服务架构与 SOA 24 2.3.1 SOA概述 24 2.3.2 微服务与 SOA 25 2.4 微服务的本质 . 26 2.4.1服务作为组件 . 27 2.4.2 围绕业务组织团队 . 28 2.4.3 关注产品而非项目 . 29 2.4.4 技术多样性 . 31 2.4.5 业务数据独立 . 32 2.4.6 基础设施自动化 . 33 2.4.7 演进式架构 . 33 2.5 微服务不是银弹 . 34 2.5.1 分布式系统的复杂度 35 2.5.2 运维成本 . 36 2.5.3 部署自动化 . 36 2.5.4 DevOps与组织架构 . 37 2.5.5 服务间的依赖测试 . 37 2.5.6 服务间的依赖管理 . 37 2.6 小结 . 38 第 2部分 实践篇 第 3章 构建第一个服务 41 3.1场景分析 . 41 3.2任务拆分 . 43 第 4章 Hello World API 45 4.1 API实现 45 4.1.1 开发语言 ――Ruby . 45 4.1.2 Web框架――Grape . 46 4.1.3 API的具体实现 47 4.2代码测试与静态检查 . 50 4.2.1代码测试 . 50 4.2.2测试覆盖率统计 . 53 4.2.3静态检查 . 54 4.2.4代码复杂度检查 . 57 第 5章 构建 Docker映像 . 61 5.1 定义 Dockerfile . 61 5.2 配置 Docker主机 63 5.3 构建 Docker映像 64 5.4 运行 Docker容器 64 5.5 发布 Docker映像 65 5.6 小结 . 69 第 6章 部署 Docker映像 . 71 6.1基础设施 AWS 71 6.2基础设施自动化 . 73 6.3 部署 Docker映像 80 6.4自动化部署 . 81 6.5 小结 . 84 第 7章 持续交付流水线 85 7.1持续集成环境 . 85 7.2提交阶段 . 87 7.3验证阶段 . 91 7.4构建阶段 . 91 7.5发布阶段 . 94 7.6 小结 . 96 第 8章 日志聚合 97 8.1 日志聚合工具简介 . 97 8.2 Splunk的核心 . 99 8.3 安装 Splunk索引器 100 8.4 安装 Splunk转发器 101 8.5日志查找 . 102 8.6告警设置 . 103 8.7 小结 . 104 第 9章 监控与告警 . 105 9.1 Nagios简介. 105 9.2 Nagios的工作原理 . 107 9.3 Nagios安装. 108 9.4 Nagios的配置 . 109 9.5 监控 products-service 111 9.6 告警 . 113 9.7 小结 . 114 第 10章 功能迭代 115 10.1定义模型 . 116 10.2持久化模型 . 117 10.3定义表现形式 . 119 10.4 实现 API 122 10.5服务描述文件 . 125 10.6 小结 . 127 第 3部分 进阶篇 第 11章 微服务与持续交付 131 11.1持续交付的核心 132 11.2微服务架构与持续交付 133 11.2.1 开发 . 133 11.2.2 测试 . 137 11.2.3持续集成 139 11.2.4 构建 . 139 11.2.5 部署 . 140 11.2.6 运维 . 143 11.3 小结 . 144 第 12章 微服务与轻量级通信机制 . 145 12.1同步通信与异步通信 . 145 12.1.1 概述 . 145 12.1.2同步通信与异步通信的选择 146 12.2远程调用 RPC . 147 12.2.1远程过程调用的核心 147 12.2.2远程方法调用 . 148 12.2.3远程过程调用的弊端 148 12.3 REST . 149 12.3.1 概述 . 149 12.3.2 REST的核心 . 150 12.3.3 REST的优势 . 152 12.3.4 REST的不足 . 152 12.3.5 本节小结 . 155 12.4 HAL . 155 12.4.1 概述 . 155 12.4.2 HAL的核心 156 12.4.3 HAL浏览器 160 12.5消息队列 . 161 12.5.1 核心部分 . 162 12.5.2 访问方式 . 163 12.5.3消息队列的优缺点 . 164 12.6后台任务处理系统 . 165 12.6.1 核心部分 . 165 12.6.2 服务回调 . 166 12.6.3 一个例子 . 167 12.6.4后台任务与微服务 . 169 12.7 小结 . 170 第 13章 微服务与测试 . 171 13.1微服务的结构 . 171 13.2微服务的测试策略 . 173 13.3微服务的单元测试 . 175 13.3.1单元测试综述 . 175 13.3.2单元测试的内容 . 176 13.4微服务的集成测试 . 179 13.4.1集成测试综述 . 179 13.4.2集成测试的实施方法 179 13.4.3集成测试的内容 . 180 13.5基于消费者驱动的契约测试 181 13.5.1集成测试存在的弊端 181 13.5.2什么是契约 . 183 13.5.3什么是契约测试 . 184 13.5.4契约测试的方法 . 185 13.5.5 Pact实现契约测试 187 13.5.6 一个例子 . 192 13.5.7 本节小结 . 205 13.6微服务的组件测试 . 205 13.6.1组件测试概述 . 205 13.6.2组件测试的方法 . 206 13.6.3 本节小结 . 207 13.7微服务的端到端测试 . 208 13.7.1端到端测试概述 . 208 13.7.2端到端测试的内容 . 208 13.7.3 本节小结 . 209 13.8 小结 . 210 第 14章 使用微服务架构改造遗留系统 211 14.1背景与挑战 . 211 14.2改造策略 . 212 14.2.1 昀小修改 . 212 14.2.2 功能剥离 . 212 14.2.3 数据解耦 . 213 14.2.4 数据同步 . 213 14.2.5 迭代替换 . 214 14.3快速开发实践 . 215 14.3.1快速开发模板 . 215 14.3.2代码生成工具 . 217 14.3.3持续集成模板 . 217 14.3.4一键部署工具 . 217 14.4微服务架构下的新系统 . 218 14.5 小结 . 220

2016-11-09

松本行弘的程序世界 mobi格式

松本行弘的程序世界 mobi格式 松本行弘的程序世界 mobi格式

2016-07-20

七周七并发模型

借助Java、Go等多种语言的特长,深度剖析所有主流并发编程模型, 基于锁和线程的并发模型是目前最常用的一种并发模型,但是并发编程模型不仅仅只有这一种,本书几乎涵盖了目前所有的并发编程模型。了解和熟悉各种并发编程模型,在解决并发问题时会有更多思路。, ——方腾飞,并发编程网站长, 当看到这本书的目录时,我就为之一振。它涉及了当今所有的主流并发编程模型(当然也包括Go语言及其实现的CSP模型)。而在品读之后,我更是有一些激动。其中的大部分章节都深入浅出地描述了某一个并发编程模型的概念、特点、机理以及适用领域。加之有大量相应实现语言的示例呈现,更是让这些模型活灵活现、极易理解。另外,各章之间的衔接会使你更容易把这些知识融会贯通。总之,并发编程乃现代编程技能的必备,而这本书则为并发编程的首选佳作。, ——郝林(@特价萝卜),《Go并发编程实战》作者, 几十年来,专业的程序员一直在用线程与锁模型来进行并行和并发,但这仅仅是《七周七并发模型》介绍的众多模型之一。当今主流语言都竞相支持不同的并发模型,例如CSP模型、数据并行、函数式编程和Clojure的unified succession model。如果你想紧跟时代,我推荐阅读本书。, ——Stuart Halloway,Cognitect联合创始人, 并发编程近年逐渐热起来,Go等并发语言也对并发编程提供了良好的支持,使得并发这个话题受到越来越多人的关注。本书延续了《七周七语言》的写作风格,通过以下七个精选的模型帮助读者了解并发领域的轮廓:线程与锁,函数式编程,Clojure,actor,通信顺序进程,数据级并行,Lambda架构。书中每一章都设计成三天的阅读量。每天阅读结束都会有相关练习,巩固并扩展当天的知识。每一章均有复习,用于概括本章模型的优点和缺陷。, 本书适合所有想了解并发的程序员。

2016-05-05

SugarCRM简体中文包

SugarCRM 简体中文包,适用于6.5.20版本,同时也适用于6.5.20之前的6.5.*版本~欢迎下载~~

2014-12-26

java版微信公众号开发项目代码和说明

java版微信公众号开发项目代码和说明 这个项目是真正在线上使用的项目 包含一个完整的生成微信号界面以及功能响应的代码 设置为10分是因为我相信10分绝对是远远低于它的价值 不过我缺分用

2014-11-15

小米IM通讯服务器架构图

小米IM通讯服务器架构图

2014-11-14

机器学习实战(中文版+英文版+源代码)

机器学习实战(中文版+英文版+源代码),是完整版的机器学习实战。

2014-11-03

高性能高并发服务器架构

高性能高并发服务器架构,让你通向架构师之路

2014-10-29

Redis 多机特性工作原理

Redis 多机特性工作原理

2014-10-27

MongoDB权威指南

MongoDB权威指南

2014-10-27

MongoDB管理与开发精要

MongoDB管理与开发精要

2014-10-27

JAVA分布式程序设计

JAVA分布式程序设计

2014-10-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除