随笔分类 -  Java

Spring Cloud开发实践(三): 接口实现和下游调用
摘要:使用Spring Boot的提升主要在于jar的打包形式给运维带来了很大的便利, 而Spring Cloud本身的优点不是那么明显, 相对于Dubbo而言, 可能体现在跨语言的交互性上(例如可以配合PHP作为前端模块), 还有现成的服务跟踪治理工具上. 对于熟悉Dubbo项目结构的开发来说, Spring Cloud的结构会相对松散, 上游的服务接口与下游的服务调用之间没有强依赖关系. 这样在上游接口调整后, 并不能及时被IDE发现而提醒下游, 会给团队配合带来一些不便. 这个系列通过代码实例介绍Spring Cloud开发中的一些有益的实践. 阅读全文

posted @ 2018-10-25 23:23 Milton 阅读(1769) 评论(0) 推荐(0) 编辑

Spring Cloud开发实践(二): Eureka服务和接口定义
摘要:使用Spring Boot的提升主要在于jar的打包形式给运维带来了很大的便利, 而Spring Cloud本身的优点不是那么明显, 相对于Dubbo而言, 可能体现在跨语言的交互性上(例如可以配合PHP作为前端模块), 还有现成的服务跟踪治理工具上. 对于熟悉Dubbo项目结构的开发来说, Spring Cloud的结构会相对松散, 上游的服务接口与下游的服务调用之间没有强依赖关系. 这样在上游接口调整后, 并不能及时被IDE发现而提醒下游, 会给团队配合带来一些不便. 这个系列通过代码实例介绍Spring Cloud开发中的一些有益的实践. 阅读全文

posted @ 2018-10-25 22:47 Milton 阅读(1642) 评论(0) 推荐(0) 编辑

Spring Cloud开发实践(一): 简介和根模块
摘要:使用Spring Boot的提升主要在于jar的打包形式给运维带来了很大的便利, 而Spring Cloud本身的优点不是那么明显, 相对于Dubbo而言, 可能体现在跨语言的交互性上(例如可以配合PHP作为前端模块), 还有现成的服务跟踪治理工具上. 对于熟悉Dubbo项目结构的开发来说, Spring Cloud的结构会相对松散, 上游的服务接口与下游的服务调用之间没有强依赖关系. 这样在上游接口调整后, 并不能及时被IDE发现而提醒下游, 会给团队配合带来一些不便. 这个系列通过代码实例介绍Spring Cloud开发中的一些有益的实践. 阅读全文

posted @ 2018-10-25 22:25 Milton 阅读(727) 评论(0) 推荐(0) 编辑

分布式交易系统的并发处理, 以及用Redis和Zookeeper实现分布式锁
摘要:交易系统 交易系统的数据结构 支付系统API通常需要一个“订单号”作为入参, 而实际调用API接口时使用到的往往不是真正意义的业务订单号, 而是交易订单号. 支付系统的API会使用“商户号+订单号”唯一的标准来设计, 对于商户方就需要做对应的逻辑来保证业务的一致性. 这里就引入了交易订单表, 一个业 阅读全文

posted @ 2018-10-18 10:20 Milton 阅读(978) 评论(0) 推荐(0) 编辑

在Java中使用Kafka
摘要:Producer部分 Producer在实例化后, 对外提供send方法, 用于将数据送到指定的topic和partition; 以及在退出时需要的destroy方法. 接口 KafkaProducer.java 参数说明 实现 KafkaProducerImpl.java Consumer 部分 阅读全文

posted @ 2018-10-17 17:04 Milton 阅读(704) 评论(0) 推荐(0) 编辑

Kafka 配置
摘要:Kafka的消息机制 在 Kafka 中 Topic 是一个存储消息的逻辑概念,可以认为是一个消息集合。每条消息发送到 Kafka 集群的消息都有一个类别。物理上来说,不同的 Topic 的消息是分开存储的,每个 Topic 可以有多个生产者向它发送消息,也可以有多个消费者去消费其中的消息。每个 T 阅读全文

posted @ 2018-10-17 15:06 Milton 阅读(428) 评论(0) 推荐(0) 编辑

Zookeeper的Watcher机制
摘要:ZooKeeper 提供了分布式数据的发布/订阅功能, 在 ZooKeeper 中引入了 Watcher 机制来实现这种分布式的通知功能. ZooKeeper 允许客户端向服务端注册一个 Watcher 监听, 当服务器的一些特定事件触发了这个 Watcher, 就会向指定客户端发送一个事件通知. 阅读全文

posted @ 2018-10-16 23:34 Milton 阅读(411) 评论(0) 推荐(0) 编辑

Spring Boot 使用Jar打包发布, 并使用 Embedded Jetty/Tomcat 容器
摘要:Jar包发布 在项目pom.xml中, 如果继承了Spring Boot的starter parent, 那么默认已经包含打包需要的plugins了, 设置为jar就能直接打包成包含依赖的可执行的jar 如果不使用Spring Boot的starter parent, 那么需要在<build>中添加 阅读全文

posted @ 2018-09-30 12:12 Milton 阅读(715) 评论(0) 推荐(0) 编辑

Spring Boot 在IDEA中debug时的hot deployment(热部署)
摘要:因为Spring Boot的项目一般会打包成jar发布, 在开发阶段debug时, 不能像传统的web项目那样, 选择exploded resources进行debug, 也没有热更新按钮, 如果每次一点小改动都要重启项目的话, 会造成极大的时间开销. 以下说明如何在IDEA 14.1.1 里面de 阅读全文

posted @ 2018-09-29 23:51 Milton 阅读(1666) 评论(0) 推荐(0) 编辑

用Redis的zset防御Session Flood
摘要:zset (Sorted Set)是set的升级版本, 在set的基础上增加了一个顺序(或者权重)值属性, 属性在添加修改元素时候可以指定. 每次指定后zset会自动重新按新的值调整顺序. 可以理解为有两列字段的数据表, 一列存value, 一列存顺序编号. 在Redis中, 就会保存一系列的列表, 阅读全文

posted @ 2018-08-07 12:40 Milton 阅读(414) 评论(0) 推荐(0) 编辑

简化版的SpringMVC框架的实现思路
摘要:在SpringMVC基本统一Java web开发技术栈的环境下, 这是一个有点过时的话题了. SpringMVC的特点主要在于注解型的RequestMapping和参数机制非常灵活, 另外得益于Spring本身的bean控制, 可以很方便的在各个环境引入其他对象. 最近整理了一下几年前的工作, 把项 阅读全文

posted @ 2018-08-06 00:34 Milton 阅读(287) 评论(0) 推荐(0) 编辑

Ubuntu18.04 运行 Gradle 4.9
摘要:简介 Gradle是一个基于Apache Ant和Apache Maven的项目自动化构建工具, 使用一种基于Groovy的特定领域语言(domain-specific language DSL)来声明构建设置. 支持多种语言项目的构建, 包含 Android, C++, Groovy, Java, 阅读全文

posted @ 2018-07-20 23:51 Milton 阅读(617) 评论(0) 推荐(0) 编辑

Java实现的简单神经网络(基于Sigmoid激活函数)
摘要:主体代码 NeuronNetwork.java NeuronLayer.java Neuron.java 激活函数 Activator.java SigmoidActivator.java 在同样的训练数据和误差目标下, 比 http://www.emergentmind.com/neural-ne 阅读全文

posted @ 2018-07-13 02:06 Milton 阅读(1844) 评论(0) 推荐(0) 编辑

Spring Cloud环境搭建: Eureka Server
摘要:项目目录结构, 总共三个文件 pom.xml application.yml 注: 可以使用application.properties, 其格式为 EurekaserverApplication.java 建立运行配置: Run/Debug Configurationst添加Application 阅读全文

posted @ 2018-05-31 10:50 Milton 阅读(582) 评论(0) 推荐(0) 编辑

Java语法专题3: HashMap
摘要:Java的HashMap是最常用的数据结构, 本文介绍了常见的 HashMap 问题: HashMap 的特性, HashMap 的工作机制, 底层原理, get 是如何实现的, put 是如何实现的, 扩容是如何工作的 阅读全文

posted @ 2018-04-30 08:34 Milton 阅读(76) 评论(0) 推荐(0) 编辑

通用的excel导出方法
只有注册用户登录后才能阅读该文。

posted @ 2017-12-08 11:06 Milton 编辑

Java中的String pool
摘要:public String intern()返回字符串对象的规范化表示形式。一个初始时为空的字符串池,它由类 String 私有地维护。当调用 intern 方法时,如果池已经包含一个等于此 String 对象的字符串(该对象由 equals(Object) 方法确定),则返回池中的字符串。否则,将 阅读全文

posted @ 2017-10-19 20:35 Milton 阅读(311) 评论(0) 推荐(0) 编辑

IntelliJ IDEA遇到Unable to parse template “Class”错误
摘要:在新安装的Ubuntu16下运行IntelliJ IDEA时, 遇到一个错误,在新建class的时候,提示Unable to parse template “Class” 通过查看 Settings -> Editor -> File and Code Templates 可以看到,所有的模板都是空 阅读全文

posted @ 2017-10-10 23:32 Milton 阅读(3935) 评论(0) 推荐(1) 编辑

Dubbo Monitor 配置
摘要:1. Dubbo Monitor 下载dubbo-monitor-simple-2.5.3-assembly.tar.gz 链接:http://pan.baidu.com/s/1gf88wDX 密码:ik7u 2. 配置原dubbo模块 在各模块的配置文件中加一行 3. 配置dubbo monito 阅读全文

posted @ 2017-05-03 18:15 Milton 阅读(9885) 评论(0) 推荐(0) 编辑

Synchronized和Lock, 以及自旋锁 Spin Lock, Ticket Spin Lock, MCS Spin Lock, CLH Spin Lock
摘要:Synchronized和Lock synchronized是一个关键字, Lock是一个接口, 对应有多种实现. 使用synchronized进行同步和使用Lock进行同步的区别 使用synchronized同步时, 未获得锁的进程只能等待. 而使用Lock进行同步时, 有多种选择: 例如用读写锁 阅读全文

posted @ 2017-04-14 20:42 Milton 阅读(958) 评论(0) 推荐(0) 编辑

导航