- 博客(14)
- 资源 (1)
- 收藏
- 关注
原创 java并发原理
JMM怎么解决原子性,可见性,有序性问题java提供了一系列的和并发处理的关键字,比如: valatile,final,syncronized, juc,这些java内存模型封装了底层的实现后提供给开发人员的使用的关键字.在开发过程中我们可以直接是用关键字syncronized等关键字.使我们不用关注底层的编译器的优化,缓存一致性问题,所以在java内存模型中,除了定义一套规范外,还提供了开发指...
2018-12-18 14:42:49 364
原创 多线程并发基础
什么情况下使用多线程解决进程多任务的实时性问题;就是解决"阻塞问题,阻塞就是程序运行到某个函数或者过程后等待某些事件的发生而暂时停止CPU占用的情况,使得CPU闲置.还有对于一个函数运算逻辑的性能问题.我们可以通过多线程的技术,使得一个函数的多个逻辑运算通过多线程技术达到一个并行执行,从而提升性能.多线程使用场景通过并行计算提高程序执行性能需要等待网络,I/O响应导致耗费大量的执行时间,...
2018-12-12 10:36:04 283
原创 单例模式
单例单例的方式 饿汉式 在实例使用之前,不管你用不用,先new,避免线程安全 懒汉式 默认加载的时候不实例化,在需要的时候才实例化,延迟加载 注册登记式 每使用一次,都向一个固定的容器中注册并且将使用过的对象进行缓存,下次取对象的时候,就直接从缓存中取值,保证每次获取都是同一个对象,IOC的单例,就是注册登记单例 枚举式 只要设置INSTAN...
2018-08-09 17:00:13 214 1
原创 Rocketmq总结
RocketMQ总结功能:应用解耦流量消峰消息分发RoketMQ安装下载地址:https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.2.0/rocketmq-all-4.2.0-bin-release.zip安装:unzip rocketmq-all-4.2.0-bin.zip -d ./rocketmq-al...
2018-07-30 10:49:34 2211
原创 分布式架构的演进(来自咕泡学院学习笔记)
分布式的发展史1946年情人节(2.14),世界上第一台电子数字计算机诞生在美国宾夕法尼亚大学,他的名字叫ENIAC,这台计算机占地170米,重达30吨,每秒可进行5000次加减法运算,第一台的计算机的诞生,意味着IT时代的到来 。最早的8位CPU到现在的64位CPU,从早期的MB到现在GB的内存。从慢速的机械存储到固态的SSD硬盘存储。冯洛伊曼:ENIAC之后,电子计算机进入了IBM主导的大型机...
2018-05-29 22:13:58 5288 2
原创 Java并发机制的底层实现原理
1.volatile 的应用 volatile 是轻量级的synchronized,保证了共享变量的“可见性”。它比所以你synchronized运行成本低。“可见性”值的一个线程在修改变量时,,另一个线程可以读到这个值。而且它不会引起上下文的切换和调度。 1.1volatile 定义与原理 volatile 允许线程访问共享变量。保证java线程内存模型和所有线程所看到...
2018-05-28 21:49:27 1350
原创 使用Ribbon实现客户端负载均衡
Ribbon的介绍Ribbon 是 Netflix发布的负载均衡器,他有助于控制HTTP和TCP客户端的行为。Ribbon 基于某种负载均衡的算法。Ribbon 为我们提供了负载均衡的算法,例如:轮询,随机,也可以自定义负载均衡算法。在spring cloun中。和Eureka Server 一起使用的 可以自动获取Eureka Server 的服务者所提供的地址Ribbon 与Eure
2018-01-05 11:07:31 1214
原创 给微服注册到需要认证的Eureka Server及Eureka元素描述
前面写的都是匿名访问的,下边我们写个用登陆才能访问Eureka Server 在pom.xml 添加 spring-boot-starter-security,该依赖为Eureka Server 提供用户认证能力。 在application.properties 添加#开启验证security.basic.enabled=true#用户名security.user.name=user#密
2017-12-28 22:08:53 1984
原创 java的反射机制及应用
1.什么是java反射机制 反射机制就是在运行的状态中,对于任意的一个类,都能知道这个类的方法和属性 2.java反射机制类java.lang.Class//类java.lang.reflect.Constructor//构造方法java.lang.reflect.Field //类的成员变量java.lang.reflect.Method //类的方法java.lang.ref
2017-12-25 00:25:06 343
原创 Eureka Server 高可用性集群
之前写的前一文写的是单点,而且Eureka Client 会定时的连接Eureka Server,获取注册表里的信息进行缓存到本地,如果微服务发现不可用了Eureka Client 就不会更新,就会影响微服务的调用,所以要一个有高可用的Eureka Server 集群,Eureka Server 可以通过运行多个实例来相互注册的方式实现高可用部署。从而保证里数据的一致性。现在建一个双节点的Eure
2017-12-24 17:54:51 826 1
原创 微服务注册与发现及如何使用Eureka
服务提供者,服务消费者,和服务发现主键之间的关系 ①在各个服务启动时候,就已经将自己的网络地址等信息注册到服务发现组件里面了并且存储这些信息 ② 服务消费者可以从发现组件中查找服务提供者的网络地址,并且用该地址调用服务提供的接口 ③各个微服务与发现组件使用一定机制通信。服务发现组件入长时间无法与某个微服务通信的话。就会直接注销实例 ④微服务网络地址发生改变时,会重新注册到发现服务组件中,服
2017-12-23 00:33:37 6912 1
原创 为项目整合Spring Boot Acuator
了解AcuatorSpring Boot Acuator 提供了很多控制端点。从而了解应用程序的状况。Acuator监控端点及描述端点描述Http方法autoconfig显示自动配置信息GETbeans显示应用程序所有上下文Spring beanGETconfigprops显示所有configurationPr
2017-12-21 20:31:23 1532
原创 微服务架构概述
以前都是多数都是用整体架构风格,把很多的相对应功能以war的形式或者ear的格式归档打包所谓是单体应用。 1.单体应用的特点:1.在项目初期比较容易部署,测试,单体应用能够很好的运行。2.随着需求的添加,单体应用变的越来越臃肿,可维护性,灵活性逐渐降低。3.复杂性,模块的边界模糊,依赖关系不清晰,代码质量参差不齐,每次修改代码,都怕出现问题。4.技术债务:随着时间的推移,需求变
2017-12-19 20:54:03 237
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人