摘要:
承接上个博文, 这次是方案2的实现, 本方案的特点:1. 该方案能很好地从几台服务器中选出一个Master机器, 不仅仅可以用于定时任务场景, 还可以用在其他场景下. 2. 该方案能实现Master节点的自动 failover, 经我测试 failover 过程稍长, 接近1分钟. 综上所述, 本方
阅读全文
posted @ 2018-10-25 10:42
harrychinese
阅读(1054)
推荐(0)
摘要:
背景说明: 有一套Web服务程序, 为了保证HA, 需要在多台服务器上部署, 该服务程序有一些定时任务要执行, 现在要保证的是, 同一定时任务不会在多台机器上被同时执行. 方案1 任务级的主备方案: 每个定时任务启动后, 都发起任务级的主节点的竞争, 胜出者执行具体任务. 方案2 服务器级的主备方案
阅读全文
posted @ 2018-10-24 14:49
harrychinese
阅读(2682)
推荐(0)
摘要:
Curator Java 客户端 CRUD 使用 Curator 是 Apache 下的开源项目, Spring Cloud 也采用了该库, 可以其功能强大和权威性. Curator 项目包含多个 artifact, 一般情况下, 我们只需要引入 curator-recipes 依赖即可, arti
阅读全文
posted @ 2018-10-23 08:56
harrychinese
阅读(608)
推荐(0)
摘要:
ZooKeeper 背景 ZooKeeper 是一个非常优秀的开源项目, 可以为软件系统提供非常重要的基础特性:1. 分布式锁. 使用场景有: 比如我们有一套系统, 为了保证HA, 在多台需要在多台服务器上部署, 该服务程序有一些定时任务需要执行, 我们需要确保同一个定时任务不会在多台机器上被同时执
阅读全文
posted @ 2018-10-21 22:21
harrychinese
阅读(178)
推荐(0)
摘要:
Sprng Boot 2 actuator变动加大, 网上很多资料都都已经过期. 配置项 在 application.properties 配置文件, actuator 的设置项 management.endpoints(设置 actuator 全局级的属性) 和 management.endpoi
阅读全文
posted @ 2018-10-19 19:53
harrychinese
阅读(2634)
推荐(1)
摘要:
用Spring Boot Starter 向导生成了一个很简单SpringBoot程序, 用到了 MySQL, 总是下面不能加载 Mysql driver class 错误. Cannot load driver class: com.mysql.jdbc.Driver 刚开始以为是 applica
阅读全文
posted @ 2018-10-19 19:31
harrychinese
阅读(13116)
推荐(0)
摘要:
Web请求的全过程(包含DNS) 完整过程参考 https://blog.csdn.net/yonggeit/article/details/72857630DNS 服务器并不承担 TCP 连接的数据通道, 只是在建立TCP连接之前起作用, 告知目标机器的IP是多少. consul 域名服务 标准的
阅读全文
posted @ 2018-10-16 18:37
harrychinese
阅读(3699)
推荐(0)
摘要:
# 查看容器的 dns 解析设置文件, 也可以检查docker 运行环境 DNS docker run busybox:latest cat /etc/resolv.conf # 为容器 mybusybox 运行手动设置一个dns服务器, 并检查是否生效docker run --dns 10.0.0
阅读全文
posted @ 2018-10-15 15:01
harrychinese
阅读(9971)
推荐(0)
摘要:
consul 命令行工具 consul 支持 Windows/Linux 等多种平台, 一般生产环境部署在 Linux, 下载包中仅有一个可执行程序, 所有的服务都通过命令行开启. 常用的命令有: consul agent #开启 server agent 或 client agentconsul
阅读全文
posted @ 2018-10-15 12:28
harrychinese
阅读(2082)
推荐(0)
摘要:
VirtualBox常用网络 NetworkAddress Translation(NAT)NAT 是VirtualBox建立的虚拟机默认的形式. 虚拟机之间无法沟通, 虚拟机能连接外部网络. GuestOS只能看到从Host发来的数据请求, 但主机不能访问GuestOS(可以通过端口转发来访问虚拟
阅读全文
posted @ 2018-10-11 22:10
harrychinese
阅读(2746)
推荐(0)
摘要:
consul 是什么 consul 是 HashiCorp 公司推出的开源工具, 该公司另一个有名的产品是 Vargrant. 用于实现分布式系统的服务发现和配置, 具体功能有:1. 提供KV安全存储, 这点和Zookeeper一样, 可用于Leader选举, 分布式事务协调的够等功能. KV存储的
阅读全文
posted @ 2018-10-11 21:33
harrychinese
阅读(472)
推荐(0)
摘要:
docker 技术已经研究了一段时间, 基本的知识点和使用场景比较清楚了, 还有一些比较高阶的内容未曾尝试, 将来工作中如果能用到, 再深入研究吧. 这篇博文汇总了一些有用的文章链接. 书籍 Docker 从入门到精通 https://yeasy.gitbooks.io/docker_practic
阅读全文
posted @ 2018-10-11 10:23
harrychinese
阅读(429)
推荐(0)
摘要:
本文转载自 搜云库 的文章 https://www.jianshu.com/p/7d76850de03f , 感谢作者 3.png 上一篇文章搭建了一个具有基础功能,权限认证、TLS 的私有仓库,但是Docker Registry 作为镜像仓库,连管理界面都没有,甚至连一些运维必备的功能都是缺失的,
阅读全文
posted @ 2018-10-11 08:55
harrychinese
阅读(544)
推荐(0)
摘要:
docker 基础镜像环境 alpine 可以使用 docker search 命令搜索指定的 image, 或者访问网址 https://hub.docker.com/explore/ 在hub官网会经常能看到 alpine 字样, alpine 是要给非常轻量级的Linux发行版,Docker官
阅读全文
posted @ 2018-10-10 14:28
harrychinese
阅读(3186)
推荐(0)
摘要:
docker 主要有两种数据存储形式, 一种是storage driver(也叫做 Graph driver), 另一种是 volume driver. stroage driver主要是存储那些无状态的数据, 写入密集型的场景应该使用 volume driver. storage driver 容
阅读全文
posted @ 2018-10-08 15:30
harrychinese
阅读(5317)
推荐(0)
摘要:
本文转载自 (https://segmentfault.com/a/1190000016447161), 感谢作者. " " 📖 节选自 "Awesome CheatSheet/Docker CheatSheet" ,对来自 "官方文档" 及 "Docker Links" 中链接内容的归档整理,包
阅读全文
posted @ 2018-09-29 13:21
harrychinese
阅读(487)
推荐(0)
摘要:
本文转自 https://segmentfault.com/a/1190000016449865 , 感谢作者! 本文的源代码在:https://github.com/chanjarste... 这里先给出一些Docker Image制作的要求,之后我们再看怎么做。 下面具体讲一下具体怎么做到以上几
阅读全文
posted @ 2018-09-29 12:48
harrychinese
阅读(1755)
推荐(0)
摘要:
为什么要使用Docker? 容器真是个好东西, (1)容器能提供隔离性; (2)容器能打包环境, 简化部署难度; (3)容器具有很好的迁移性, 开发在不同环境中部署. (4) 容器是轻量级. 详细讲解如下:1. docker能为应用系统提供一个很好的沙箱 比如要部署两套Python Web系统, 一
阅读全文
posted @ 2018-09-25 17:29
harrychinese
阅读(3775)
推荐(0)
摘要:
Flyway 和 Liquibase 都是 Java 项目中常用的 DB migration 工具, 从使用简便性看,Flyway 比 Liquibase 更简单, 从 github 的 star 数量看, flyway 更受欢迎. flyway 命令行工具和 maven 插件 对于 SpringB
阅读全文
posted @ 2018-09-17 18:23
harrychinese
阅读(23656)
推荐(1)
摘要:
控制 json 序列化/反序列化 1. @JsonIgnoreProperties的用法 @JsonIgnoreProperties(value = { "prop1","prop2" }) 用来修饰Pojo类, 在序列化和反序列化的时候忽略指定的属性, 可以忽略一个或多个属性. @JsonIgno
阅读全文
posted @ 2018-09-15 21:53
harrychinese
阅读(12308)
推荐(0)
摘要:
不管是单体应用还是微服务应用, 现在都流行Restful风格, 下图是一个比较典型的使用rest的应用架构, 该应用不仅使用database数据源, 而且用到了一个Weather微服务, 另一方面, 该应用也是通过rest方式为web UI 或其他微服务应用提供服务. 通过Postman 插件测试R
阅读全文
posted @ 2018-09-09 15:38
harrychinese
阅读(1545)
推荐(0)
摘要:
SpringMVC 视图方法的参数, 已经在这个文章中写得非常清楚了, 链接为 https://www.cnblogs.com/morethink/p/8028664.html 这篇文章做一些补充. 被@RequestMapping 注解的方法的签名非常灵活, Spring会自动注入各种类型的实参,
阅读全文
posted @ 2018-09-08 22:15
harrychinese
阅读(1269)
推荐(0)
摘要:
本文转载自 https://www.cnblogs.com/morethink/p/6525216.html SpringMVC解决跨域问题, 感谢作者! 有个朋友在写扇贝插件的时候遇到了跨域问题。于是我对解决跨域问题的方式进行了一番探讨。 问题 API:查询单词URL: https://api.s
阅读全文
posted @ 2018-09-08 21:50
harrychinese
阅读(11062)
推荐(0)
摘要:
不要自称为程序员http://www.ruanyifeng.com/blog/2011/10/dont_call_yourself_a_programmer.html 面试时,如何向公司提问?http://www.ruanyifeng.com/blog/2012/08/questions_you_n
阅读全文
posted @ 2018-09-08 21:36
harrychinese
阅读(67)
推荐(0)
摘要:
本文转载自 Karibasappa G C (KB), the Founder of javainsimpleway.com, 原文链接 http://javainsimpleway.com/exception-handling-best-practices/ Exception handling
阅读全文
posted @ 2018-09-08 18:49
harrychinese
阅读(465)
推荐(0)
摘要:
本文转载自 https://www.cnblogs.com/morethink/p/8028664.html, 作者写得非常好, 致谢! SpringMVC 参数绑定注解解析 本文介绍了用于参数绑定的相关注解。 绑定:将请求中的字段按照名字匹配的原则填入模型对象。 SpringMVC就跟Struts
阅读全文
posted @ 2018-09-08 18:44
harrychinese
阅读(8072)
推荐(1)
摘要:
Spring 容器中 Bean 的名称 声明 bean 有两个方式, 一个是 @Bean, 另一个是 @Component 和它的子类 (包括 @Service/@Controller/@Repository/@Configuration), Spring 容器中 bean 名生成规则分两大类, 分
阅读全文
posted @ 2018-08-25 20:38
harrychinese
阅读(4185)
推荐(0)
摘要:
Spring 的依赖注入 对于 Spring 程序, Spring 框架为我们提供一个 IoC 容器, 该容器负责创建对象和维护对象之间的依赖关系. 对于普通程序, 我们是通过对象本身来创建和解决自己的依赖问题. ApplicationContext 即是 Spring 程序的 IoC 容器, 该容
阅读全文
posted @ 2018-08-13 18:18
harrychinese
阅读(22784)
推荐(1)
摘要:
Vertica 性能非常好, 平时基本不会碰到性能问题, 即使碰到, 优化也很容易, 而且效果往往会很好. 优化工具 1. explain 命令. 在一个大 SQL 执行之前, 使用 profile 来查看资源的预期消耗. veritica 执行计划除了有普通文本格式, 还有 graphviz 格式
阅读全文
posted @ 2018-08-02 16:12
harrychinese
阅读(3326)
推荐(0)
摘要:
分布式锁需要具备的特性1. 高可用性2. 具备防止死锁能力, 获得锁的线程或进程在网络或硬件宕机的情况下, 无法主动释放该锁, 但我们仍可以通过锁定超时的方式删除锁. 3. 可重入, 一个线程在获得该锁的情况后, 可以多次获得同一个锁, 而无需任何延迟等待. 4. 提供阻塞获取锁的函数, 即没有获得
阅读全文
posted @ 2018-08-01 22:19
harrychinese
阅读(624)
推荐(0)
摘要:
Java 双冒号 :: 语法的含义 下面的代码中有双冒号,初看上去很奇怪, list.forEach(System.out::println); 这是Java8的"方法引用", 语法是 类名::静态方法名, 一般用作简化Lamda表达式. 详见讨论: https://www.zhihu.com/qu
阅读全文
posted @ 2018-07-27 22:33
harrychinese
阅读(895)
推荐(1)
摘要:
Web项目Session管理是一个很重要的话题, 涉及到系统横向扩展, SpringBoot已经为共享Session很好的解决方案, 这篇文章关注使用Redis共享会话, 同时这也是最常用的方法. pom.xml 增加依赖 SpringBoot2 已经将Redis底层客户端从Jedis切换为Lett
阅读全文
posted @ 2018-07-27 10:53
harrychinese
阅读(1647)
推荐(0)
摘要:
Redis 安装 redis 采用单线程多路复用的机制提供并发访问, 用到了 Linux 的一些独有的特性, 所以官网不提供 Windows 版本, 微软和开源界曾经将 redis 移植到 Windows, 在 github 上可以下载使用, 不过最后的 release 版本是 2016 年 7 月
阅读全文
posted @ 2018-07-24 13:52
harrychinese
阅读(338)
推荐(0)
摘要:
本文转载自 crossoverJie 的b博客 https://www.cnblogs.com/crossoverJie/p/9282065.html 前言 之前或多或少分享过一些内存模型、对象创建之类的内容,其实大部分人看完都是懵懵懂懂,也不知道这些的实际意义。 直到有一天你会碰到线上奇奇怪怪的问
阅读全文
posted @ 2018-07-17 21:46
harrychinese
阅读(463)
推荐(0)
摘要:
对象名称可以长到128字符 1. Vertica 中字段名/表名/视图名/projection名/schema名, 名称最长达128个字节, 所以我们不用费尽心思缩写表名和字段名. 2. Vertica中的名称在catalog系统表能区分出大小写, 但使用的时候是大小写不铭感的. 在Oracle中,
阅读全文
posted @ 2018-07-17 15:28
harrychinese
阅读(4297)
推荐(0)
摘要:
我们的 SpringBoot 程序都会加 spring-boot-starter 包, 而该包一个依赖项 spring-boot-starter-logging, 所以SpringBoot 程序不需要再显式增加 spring-boot-starter-logging 包依赖. 使用 mvn depe
阅读全文
posted @ 2018-07-01 17:44
harrychinese
阅读(6140)
推荐(0)
摘要:
本文主要修改自下面博客:http://www.ityouknow.com/springboot/2016/11/06/spring-boo-mybatis.htmlhttp://tengj.top/2017/04/23/springboot9/http://www.hifreud.com/2017/
阅读全文
posted @ 2018-06-25 21:25
harrychinese
阅读(900)
推荐(0)
摘要:
摘自: http://www.ityouknow.com/springboot/2017/05/09/springboot-deploy.html 查看JVM参数的值 可以根据java自带的jinfo命令: jinfo -flags pid jinfo -flags pid 来查看jar 启动后使用
阅读全文
posted @ 2018-06-22 23:15
harrychinese
阅读(461)
推荐(0)
摘要:
SpringBoot 项目单元测试也很方便, Web项目中单元测试应该覆盖:1. Service 层2. Controller 层 本文前半部分讲解是一些测试基础配置. 对于Service和Controller测试的讲解,摘自一个博客(嘟嘟独立博客的博客, Spring Boot干货系列:(十二)S
阅读全文
posted @ 2018-06-22 22:30
harrychinese
阅读(38412)
推荐(4)
摘要:
pom.xml 文件 需要在 pom.xml 文件增加 mybatis-generator-maven 插件, mybatis-generator maven 插件默认会读到 src/main/resources目录下的 generatorConfig.xml 文件, 也可以自定义 generato
阅读全文
posted @ 2018-06-19 13:00
harrychinese
阅读(463)
推荐(0)