• 等级
  • 486420 访问
  • 196 原创
  • 643 转发
  • 2741 排名
  • 48 评论
  • 84 获赞

Java编程逻辑-函数式编程6

查找元素现在我们对这个设计优雅的转化集合的方法已经不陌生了,但它对查找元素却也是无能为力。不过filter方法却是为这个而生的。我们现在要从一个名字列表中,取出那些以N开头的名字。当然可能一个也没有,结果可能是个空集合。我们先用老方法实现一把。 1 2 3 4 5 6 7 8 9 10 11 ...

2018-12-03 09:04:43

Java编程逻辑-函数式编程5

列表的转化将集合转化成一个新的集合就和遍历它一样简单。假设我们要将列表中的名字转化成全大写的。我们看下都有哪些实现方式。 Java中的字符串是不可变的,所以它没法改变。我们可以生成新的字符串,用来替换列表中原有的元素。然而这样做的话,原来列表就没了;还有一个问题,原来的列表可能也是不可变的,比如Arrays.asList()生成的,所以修改原来的列表这招不行。还有一个缺点就是这样做很难并行...

2018-12-03 09:02:55

Java编程逻辑-函数式编程4

第二章:集合的使用我们经常会用到各种集合,数字的,字符串的还有对象的。它们无处不在,哪怕操作集合的代码要能稍微优化一点,都能让代码清晰很多。在这章中,我们探索下如何使用lambda表达式来操作集合。我们用它来遍历集合,把集合转化成新的集合,从集合中删除元素,把集合进行合并。 遍历列表遍历列表是最基本的一个集合操作,这么多年来,它的操作也发生了一些变化。我们使用一个遍历名字的小例子,从最...

2018-12-03 09:01:22

Java编程逻辑-函数式编程3

第四节:进化而非革命我们用不着转向别的语言,就能享受函数式编程带来的好处;需要改变的只是使用Java的一些方式。C++,Java,C#这些语言都支持命令式和面向对象的编程。不过现在它们都开始投入函数式编程的怀抱里了。我们刚才已经看到了这两种风格的代码,并讨论了函数式编程能带来的好处。现在我们来看下它的一些关键概念和例子来帮助我们学习这种新的风格。 Java语言的开发团队花费了大量的时间和精...

2018-12-03 08:59:28

Java编程逻辑-函数式编程2

第二节:函数式编程的最大收获函数式风格的代码有更高的信噪比;写的代码更少了,但每一行或者每个表达式做的却更多了。比命令式编程相比,函数式编程让我们获益良多:  避免了对变量的显式的修改或赋值,这些通常是BUG的根源,并导致代码很难并行化。在命令行编程中我们在循环体内不停的对totalOfDiscountedPrices变量赋值。在函数式风格里,代码不再出现显式的修改操作。变量修改的...

2018-12-03 08:58:14

Java编程逻辑-函数式编程1

第一章你好,lambda表达式!第一节Java的编码风格正面临着翻天覆地的变化。我们每天的工作将会变成更简单方便,更富表现力。Java这种新的编程方式早在数十年前就已经出现在别的编程语言里面了。这些新特性引入Java后,我们可以写出更简洁,优雅,表达性更强,错误更少的代码。我们可以用更少的代码来实现各种策略和设计模式。在本书中我们将通过日常编程中的一些例子来探索函数式风格的编程。在使用这...

2018-12-03 08:57:25

scala、Java函数式编程比较初步~

今天我们就先来讲一下Java8引入的Lambda表达式,以及由此引入的函数式编程,以及函数式接口。什么是函数式编程函数式编程并不是Java新提出的概念,其与指令编程相比,强调函数的计算比指令的计算更重要;与过程化编程相比,其中函数的计算可以随时调用。当然,大家应该都知道面向对象的特性(抽象、封装、继承、多态)。其实在Java8出现之前,我们关注的往往是某一类对象应该具有什么样的属性,当...

2018-11-19 14:08:12

Spring Cloud:Eureka 2.X 停止开发,但注册中心还有更多选择:Consul 使用详解(13)

在上个月我们知道Eureka2.X遇到困难停止开发了,但其实对国内的用户影响甚小,一方面国内大都使用的是Eureka1.X系列,另一方面SpringCloud支持很多服务发现的软件,Eureka只是其中之一,下面是SpringCloud支持的服务发现软件以及特性对比:Feature euerka Consul zookeeper etcd ...

2018-11-09 09:05:42

Spring Cloud:使用Spring Cloud Sleuth和Zipkin进行分布式链路跟踪(12)

随着业务发展,系统拆分导致系统调用链路愈发复杂一个前端请求可能最终需要调用很多次后端服务才能完成,当整个请求变慢或不可用时,我们是无法得知该请求是由某个或某些后端服务引起的,这时就需要解决如何快读定位服务故障点,以对症下药。于是就有了分布式系统调用跟踪的诞生。现今业界分布式服务跟踪的理论基础主要来自于Google的一篇论文《Dapper,aLarge-ScaleDistributed...

2018-11-05 20:21:13

Spring Cloud:服务网关Zuul高级篇(11)

时间过的很快,写springcloud(十):服务网关zuul初级篇还在半年前,现在已经是2018年了,我们继续探讨Zuul更高级的使用方式。上篇文章主要介绍了Zuul网关使用模式,以及自动转发机制,但其实Zuul还有更多的应用场景,比如:鉴权、流量转发、请求统计等等,这些功能都可以使用Zuul来实现。Zuul的核心Filter是Zuul的核心,用来实现对外服务的控制。Filter的生...

2018-11-05 20:20:22

Spring Cloud:服务网关zuul(10)

前面的文章我们介绍了,Eureka用于服务的注册于发现,Feign支持服务的调用以及均衡负载,Hystrix处理服务的熔断防止故障扩散,SpringCloudConfig服务集群配置中心,似乎一个微服务框架已经完成了。我们还是少考虑了一个问题,外部的应用如何来访问内部各种各样的微服务呢?在微服务架构中,后端服务往往不直接开放给调用端,而是通过一个API网关根据请求的url,路由到相应的服务...

2018-11-05 20:17:35

Spring Cloud:配置中心和消息总线(终结版)(09)

我们在springcloud(七):配置中心svn示例和refresh中讲到,如果需要客户端获取到最新的配置信息需要执行refresh,我们可以利用webhook的机制每次提交代码发送请求来刷新客户端,当客户端越来越多的时候,需要每个客户端都执行一遍,这种方案就不太适合了。使用SpringCloudBus可以完美解决这一问题。 SpringCloudBusSpringclou...

2018-11-05 20:16:39

Spring Cloud:配置中心服务化和高可用(08)

在前两篇的介绍中,客户端都是直接调用配置中心的server端来获取配置文件信息。这样就存在了一个问题,客户端和服务端的耦合性太高,如果server端要做集群,客户端只能通过原始的方式来路由,server端改变IP地址的时候,客户端也需要修改配置,不符合springcloud服务治理的理念。springcloud提供了这样的解决方案,我们只需要将server端当做一个服务注册到eureka中,cli...

2018-11-05 20:15:05

Spring Cloud:配置中心svn示例和refresh(07)

上一篇springcloud(六):配置中心git示例留了一个小问题,当重新修改配置文件提交后,客户端获取的仍然是修改前的信息,这个问题我们先放下,待会再讲。国内很多公司都使用的svn来做代码的版本控制,我们先介绍以下如何使用svn+SpringCloudConfig来做配置中心。 svn版本同样先示例server端的代码,基本步骤一样。1、添加依赖<depende...

2018-11-05 20:12:54

Spring Cloud:配置中心git示例(06)

随着线上项目变的日益庞大,每个项目都散落着各种配置文件,如果采用分布式的开发模式,需要的配置文件随着服务增加而不断增多。某一个基础服务信息变更,都会引起一系列的更新和重启,运维苦不堪言也容易出错。配置中心便是解决此类问题的灵丹妙药。市面上开源的配置中心有很多,BAT每家都出过,360的QConf、淘宝的diamond、百度的disconf都是解决这类问题。国外也有很多开源的配置中心Apache...

2018-11-05 20:11:28

Spring Cloud:熔断监控Hystrix Dashboard和Turbine(05)

Hystrix-dashboard是一款针对Hystrix进行实时监控的工具,通过HystrixDashboard我们可以在直观地看到各HystrixCommand的请求响应时间,请求成功率等数据。但是只使用HystrixDashboard的话,你只能看到单个应用内的服务信息,这明显不够.我们需要一个工具能让我们汇总系统内多个服务的数据并显示到HystrixDashboard上,...

2018-11-05 20:10:18

Spring Cloud:熔断器Hystrix(04)

说起springcloud熔断让我想起了去年股市中的熔断,多次痛的领悟,随意实施的熔断对整个系统的影响是灾难性的,好了接下来我们还是说正事。 熔断器 雪崩效应在微服务架构中通常会有多个服务层调用,基础服务的故障可能会导致级联故障,进而造成整个系统不可用的情况,这种现象被称为服务雪崩效应。服务雪崩效应是一种因“服务提供者”的不可用导致“服务消费者”的不可用,并将不可用逐渐放大的过...

2018-11-05 20:09:07

Spring Cloud:服务提供与调用(03)

上一篇文章我们介绍了eureka服务注册中心的搭建,这篇文章介绍一下如何使用eureka服务注册中心,搭建一个简单的服务端注册服务,客户端去调用服务使用的案例。案例中有三个角色:服务注册中心、服务提供者、服务消费者,其中服务注册中心就是我们上一篇的eureka单机版启动既可,流程是首先启动注册中心,服务提供者生产服务并注册到服务中心中,消费者从服务中心中获取服务并执行。 服务提供我...

2018-11-05 20:08:00

Spring Cloud:注册中心Eureka(02)

Eureka是Netflix开源的一款提供服务注册和发现的产品,它提供了完整的ServiceRegistry和ServiceDiscovery实现。也是springcloud体系中最重要最核心的组件之一。 背景介绍服务中心服务中心又称注册中心,管理各种服务功能包括服务的注册、发现、熔断、负载、降级等,比如dubboadmin后台的各种功能。有了服务中心调用关系会有什么变化...

2018-10-30 11:33:51

Spring Cloud:初始Spring Cloud(01)

研究了一段时间springboot了准备向spirngcloud进发,公司架构和项目也全面拥抱了SpringCloud。在使用了一段时间后发现SpringCloud从技术架构上降低了对大型系统构建的要求,使我们以非常低的成本(技术或者硬件)搭建一套高效、分布式、容错的平台,但SpringCloud也不是没有缺点,小型独立的项目不适合使用,另外对分布式事物的支持暂时也没有。 Spr...

2018-10-30 11:31:04

湘西刀疤客

永远狂奔在技术探索的路上!
关注
  • IT服务·系统集成/码农叔
  • 中国 广东省 深圳市
奖章
  • 专栏达人
  • 持之以恒