上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 91 下一页
  2018年9月18日
摘要: 高并发环境下如果能处理好缓存就可以有效的减小服务器的压力,Java中有许多非常好用的缓存工具,比如Redis、EHCache等,当然在Spring Cloud的Hystrix中也提供了请求缓存的功能,我们可以通过一个注解或者一个方法来开启缓存,进而减轻高并发环境下系统的压力。 请求缓存的整个生命周期 阅读全文
posted @ 2018-09-18 11:39 duanxz 阅读(954) 评论(0) 推荐(0)
  2018年9月17日
摘要: 《consul之:常用API接口》 《springCloud+consul优雅停机》 《Consul之:服务健康监测》 官网:https://www.consul.io/api-docs /v1/agent/checks : 返回本地agent注册的所有检查(包括配置文件和HTTP接口) /v1/a 阅读全文
posted @ 2018-09-17 18:01 duanxz 阅读(7712) 评论(0) 推荐(1)
摘要: 《Springboot Actuator之二:actuator在监控和管理指标的特性》 《服务注册发现consul之二:在Spring Cloud中使用Consul实现服务的注册和发现》 《Consul之:服务健康监测》 《consul之:常用API接口》 《springCloud+consul优雅 阅读全文
posted @ 2018-09-17 16:27 duanxz 阅读(33032) 评论(0) 推荐(0)
摘要: DNS是consul提供的主要查询接口之一。DNS接口允许应用程序在没有与consul高度集成的情况下使用服务发现。 例如:替代consul的HTTP API请求,主机能够通过名字查找直接使用DNS服务器,类似"redis.service.east-aws.consul",此查询自动转换为查找位于数 阅读全文
posted @ 2018-09-17 14:57 duanxz 阅读(2295) 评论(0) 推荐(0)
摘要: 一、服务的管理(注册与发现)有三种方式: 1:通过配置文件的方式静态注册2:通过HTTP API接口来动态注册(spring cloud使用方式,spring cloud中使用的是consul api)3:使用consul client或consul api(程序)实现服务的注册和发现(Java非s 阅读全文
posted @ 2018-09-17 14:28 duanxz 阅读(10945) 评论(1) 推荐(1)
摘要: key/value作用 动态修改配置文件 支持服务协同 建立leader选举 提供服务发现 集成健康检查 除了提供服务发现和综合健康检查,Consul还提供了一个易于使用的键/值存储。这可以用来保存动态配置,协助服务协调,建立领导人选举,并启用其他开发人员可以想构建的任何其他内容。 有两种方法可以使 阅读全文
posted @ 2018-09-17 10:26 duanxz 阅读(20547) 评论(0) 推荐(4)
  2018年9月13日
摘要: 伴随着微服务架构被宣传得如火如荼,一些概念也被推到了我们面前(管你接受不接受),其实大多数概念以前就有,但很少被提的这么频繁(现在好像不提及都不好意思交流了)。想起有人总结的一句话,微服务架构的特点就是:“一解释就懂,一问就不知,一讨论就吵架”。 其实对老外的总结能力一直特别崇拜,Kevin Kel 阅读全文
posted @ 2018-09-13 16:41 duanxz 阅读(3373) 评论(0) 推荐(0)
  2018年9月4日
摘要: Java中的DelayQueue位于java.util.concurrent包下,本质是由PriorityQueue和BlockingQueue实现的阻塞优先级队列。 放入队列的元素需要实现java.util.concurrent包的Delayed接口: 通过实现这个接口,来完成对队列中元素,按照时 阅读全文
posted @ 2018-09-04 17:20 duanxz 阅读(2785) 评论(0) 推荐(0)
摘要: 介绍 延迟队列,顾名思义它是一种带有延迟功能的消息队列。 那么,是在什么场景下我才需要这样的队列呢? 很多时候我们会有延时处理一个任务的需求,比如说: 2个小时后给用户发送短信。15分钟后关闭网络连接。2分钟后再次尝试回调。 下面我们来分别探讨一下几种实现方案: 1、Java中的DelayQueue 阅读全文
posted @ 2018-09-04 17:13 duanxz 阅读(6438) 评论(0) 推荐(0)
摘要: 需求背景 用户下订单成功之后隔20分钟给用户发送上门服务通知短信 订单完成一个小时之后通知用户对上门服务进行评价 业务执行失败之后隔10分钟重试一次 类似的场景比较多 简单的处理方式就是使用定时任务 假如数据比较多的时候 有的数据可能延迟比较严重,而且越来越多的定时业务导致任务调度很繁琐不好管理。 阅读全文
posted @ 2018-09-04 16:30 duanxz 阅读(2871) 评论(0) 推荐(0)
  2018年8月31日
摘要: 1.=> 在了解Scala的By-Name参数之前,先了解下“=>”在Scala中有几种用法: 1.对于值,“=>”相当于lambda表达式。如: 2.对于类型,“=>”两端的类型(如,A => B、(A, B) => C等)。它对于Function<n>[A[, B...], T]是一个语法糖。一 阅读全文
posted @ 2018-08-31 18:19 duanxz 阅读(557) 评论(0) 推荐(0)
摘要: 一、初识Currying柯里化 柯里化(Currying)技术 Christopher Strachey 以逻辑学家 Haskell Curry 命名的(尽管它是 Moses Schnfinkel 和 Gottlob Frege 发明的)。它是把接受多个参数的函数变换成接受一个单一参数(最初函数的第 阅读全文
posted @ 2018-08-31 17:45 duanxz 阅读(4227) 评论(0) 推荐(1)
  2018年8月30日
摘要: 概述 Spring Boot 监控核心是 spring-boot-starter-actuator 依赖,增加依赖后, Spring Boot 会默认配置一些通用的监控,比如 jvm 监控、类加载、健康监控等。 我们之前讲过Docker容器的可视化监控,即监控容器的运行情况,包括 CPU使用率、内存 阅读全文
posted @ 2018-08-30 12:00 duanxz 阅读(23706) 评论(0) 推荐(3)
  2018年8月29日
摘要: 函数的表现形式 1、方法 定义:定义函数最通用的方法就是作为某个对象的成员。这种函数被称为方法。 1 2 3 4 5 6 7 8 9 10 11 2、本地函数 上面的processFile方法展示了函数式编程风格的重要设计原则:程序应该被分割理解成若干个小的函数,每一块都实现一个完备的任务,每一块都 阅读全文
posted @ 2018-08-29 15:18 duanxz 阅读(4341) 评论(0) 推荐(0)
  2018年8月21日
摘要: Scala中的内建控制机构仅有if、while、for、try、match和函数调用。虽然Scala的基础控制结构少,但也足以支持指令式语言里所有的实质内容。因为它们都能产生值,有助于缩短代码。 程序员可以通过使用返回值的控制结构简化代码,避免创建临时变量来保存控制结构中的计算结果。 1 If表达式 阅读全文
posted @ 2018-08-21 14:21 duanxz 阅读(600) 评论(0) 推荐(0)
摘要: 有理数类的表示 实现规范:支持有理数的加减乘除,并支持有理数的规范表示 1.定义Rational 首先,考虑用户如何使用这个类,我们已经决定使用“Immutable”方式来使用Rational对象,我们需要用户在定义Rational对象时提供分子和分母。 class Rational(n:Int, 阅读全文
posted @ 2018-08-21 10:06 duanxz 阅读(712) 评论(0) 推荐(0)
  2018年8月11日
摘要: Scala基本类型 Scala中的基本数据类型如下图: (来源:Programming in scala) 从上表中可以看出,Scala的基本数据类型与Java中的基本数据类型是一一对应的,不同的是Scala的基本数据类型头字母必须大写,本节以Int、Long、String、Char、Double及 阅读全文
posted @ 2018-08-11 22:50 duanxz 阅读(8204) 评论(0) 推荐(0)
摘要: Scala集合 Scala提供了一套很好的集合实现,提供了一些集合类型的抽象。 Scala 集合分为可变的和不可变的集合。 可变集合可以在适当的地方被更新或扩展。这意味着你可以修改,添加,移除一个集合的元素。而不可变集合类永远不会改变。不过,你仍然可以模拟添加,移除或更新操作。但是这些操作将在每一种 阅读全文
posted @ 2018-08-11 18:38 duanxz 阅读(7622) 评论(0) 推荐(0)
摘要: 类简介 简介 类是对象的蓝图。一旦你定义了类,就可以用关键字new根据类的蓝图创建对象。在类的定义里,可以放置字段和方法,这些被笼统地称为成员。对于字段,不管是val还是var定义的,都是指向对象的变量。对于方法,用def定义,包含了可执行代码。字段保留了对象的状态或数据,而方法使用这些数据执行对象 阅读全文
posted @ 2018-08-11 12:37 duanxz 阅读(3577) 评论(0) 推荐(0)
摘要: 变量是只不过是保留内存位置来存储值。这意味着,当创建一个变量,会在内存中保留一些空间。 基于变量的数据类型,所述编译器分配存储器,并决定什么可以被存储在保留存储器。因此,通过分配不同的数据类型的变量,可以存储整数,小数,或字符在这些变量。 变量声明 Scala有两种变量,val和var。val类似于 阅读全文
posted @ 2018-08-11 12:34 duanxz 阅读(1954) 评论(0) 推荐(0)
  2018年8月7日
摘要: 对于异步方法调用,从Spring3开始提供了@Async注解,该注解可以被标注在方法上,以便异步地调用该方法。调用者将在调用时立即返回,方法的实际执行将提交给Spring TaskExecutor的任务中,由指定的线程池中的线程执行。 遇到开发人员只会简单的使用@Async注解,而不知其实现原理,更 阅读全文
posted @ 2018-08-07 18:45 duanxz 阅读(3184) 评论(0) 推荐(0)
摘要: 在ConcurrencyThrottleSupport类中,简单的通过synchronized和wati and notify达到控制线程数量的效果,从而实现限流的策略。 一、类图 二、主要方法 先看ConcurrencyThrottleInterceptor.java类的源码: 看该拦截器中的in 阅读全文
posted @ 2018-08-07 11:17 duanxz 阅读(2108) 评论(0) 推荐(0)
摘要: 一、spring异步线程池类图 二、简单介绍 2.1. TaskExecutor Spring异步线程池的接口类,其实质是java.util.concurrent.Executor 以下是官方已经实现的全部7个TaskExecuter。Spring宣称对于任何场景,这些TaskExecuter完全够 阅读全文
posted @ 2018-08-07 10:06 duanxz 阅读(51476) 评论(0) 推荐(2)
  2018年7月21日
摘要: 通过上一节《微服务之分布式跟踪系统(springboot+zipkin)》我们简单熟悉了zipkin的使用,但是收集的数据都保存在内存中重启后数据丢失,不过zipkin的Storage除了内存,还有Cassandra、MYSQL、ElasticSearch。 二、zipkin的各种Storage配置 阅读全文
posted @ 2018-07-21 11:34 duanxz 阅读(899) 评论(0) 推荐(0)
  2018年7月19日
摘要: Spring Boot 内嵌容器Undertow参数设置 配置项: # 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程 # 不要设置过大,如果过大,启动项目会报错:打开文件数过多 server.undertow.io-threads=16 # 阻塞任务 阅读全文
posted @ 2018-07-19 17:18 duanxz 阅读(99710) 评论(0) 推荐(6)
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 91 下一页