05 2019 档案

摘要:MVC框架的实现 在开始设计MVC框架前,首先要对MVC框架做一个简单的介绍。MVC(Model View Controller)的中文名称叫做模型视图控制器模型,就是因为它的英文名字太流行了,中文名字反而被忽略了。它诞生于20世纪80年代,原本是为桌面应用程序建立起来的一个框架,现在反而在Web应 阅读全文
posted @ 2019-05-31 20:46 Tu9oh0st 阅读(791) 评论(0) 推荐(0)
摘要:面向过程让计算机有步骤地顺次做一件事情,是一种过程化地叙事思维。但是在大型软件开发过程中,发现用面向过程语言开发,软件维护、软件复用存在着巨大困难,代码开发变成了记流水账,久而久之就称为“面条”代码,模块之间互相耦合,流程互相穿插,往往牵一发而动全身。面向对象提出一种计算机世界里解决复杂软件工厂的方 阅读全文
posted @ 2019-05-31 16:03 Tu9oh0st 阅读(351) 评论(0) 推荐(0)
摘要:工厂方法模式的定义 工厂方法模式使用的频率非常高,在我们日常的开发中总能见到它的身影。其定义为: Define an interface for creating an object,but let subclasses decide which class to instantiate.Facto 阅读全文
posted @ 2019-05-30 19:59 Tu9oh0st 阅读(142) 评论(0) 推荐(0)
摘要:单例模式的定义 单例模式(Singleton Pattern)是一个比较简单的模式,其定义如下: Ensure a class has only one instance, and provide a global point of access to it.(确保某一个类只有一个实例,而且自行实例 阅读全文
posted @ 2019-05-30 16:20 Tu9oh0st 阅读(105) 评论(0) 推荐(0)
摘要:我们平时浏览网页的时候,会打开浏览器,输入网址后按下回车键,然后就会显示出你想要浏览的内容。在这个看似简单的用户行为背后,到底隐藏了些什么呢? 对于普通的上网过程,系统其实是这样做的:浏览器本身是一个客户端,当你输入URL的时候,首先浏览器会去请求DNS服务器,通过DNS获取相应的域名对应的IP,然 阅读全文
posted @ 2019-05-26 18:04 Tu9oh0st 阅读(301) 评论(1) 推荐(0)
摘要:切片是一种数据结构,这种数据结构便于使用和管理数据集合。切片是围绕动态数组的概念构建的,可以按需自动增长和缩小。切片的动态增长是通过内置函数append来实现的。这个函数可以快速且高效的增长切片。还可以通过对切片再次切片来缩小切片的大小。因为切片的底层内存也是在连续块中分配的,所以切片还能获得索引、 阅读全文
posted @ 2019-05-25 15:32 Tu9oh0st 阅读(460) 评论(0) 推荐(0)
摘要:bean是Spring中最核心的东西,因为Spring就像是个大水桶,而bean就像是容器中的水,水桶脱离了水便也没什么用处了,那么我们先看看bean的定义。 接下来是配置文件: 测试代码: 这段测试代码完成的功能无非就是以下几点: 1. 读取配置文件 。 2. 根据 中的配置找到对应的类的配置,并 阅读全文
posted @ 2019-05-22 17:00 Tu9oh0st 阅读(257) 评论(0) 推荐(0)
摘要:今天看《Go语言实战》发现方法和函数不太一样,写的格式不一样,用法也不一样。所以记一次笔记。 在Go语言中,函数和方法不太一样,有明确的概念区分。其他语言中,比如Java,一般来说,函数就是方法,方法就是函数,但是在Go语言中,函数是指不属于任何结构体、类型的方法,也就是说,函数是没有接收者的;而方 阅读全文
posted @ 2019-05-21 21:45 Tu9oh0st 阅读(2972) 评论(0) 推荐(4)
摘要:数组的内部实现和基础功能 因为数组是切片和映射的基础数据结构。理解了数组的工作原理,有助于理解切片和映射提供的优雅和强大的功能。 内部实现 在Go语言里,数组是一个长度固定的数据类型,用于存储一段具有相同的类型的元素的连续块。 下图中可以到数组的表示。 数组是一种非常有用的数据结构,因为其占用的内存 阅读全文
posted @ 2019-05-20 20:57 Tu9oh0st 阅读(473) 评论(0) 推荐(0)
摘要:Spring Cloud Bus 将分布式的节点用轻量的消息代理连接起来。它可以用于广播配置文件的更改或者服务之间的通讯,也可以用于监控。本文要讲述的是用Spring Cloud Bus实现通知微服务架构的配置文件的更改。 准备工作 本文还是基于上一篇文章来实现。按照官方文档,我们只需要在配置文件中 阅读全文
posted @ 2019-05-20 08:35 Tu9oh0st 阅读(219) 评论(0) 推荐(0)
摘要:包 所有Go语言的程序都会组织成若干组文件,每组文件被称为一个包。这样每个包的代码都可以作为很小的复用单元,被其他项目引用。 包名惯例 给包命名的惯例是使用包所在目录的名字。并不需要所有包的名字都与别的包不同,因为导入包时是使用全路径的,所以可以区分同名的不同包。 main包 Go语言的编译程序会试 阅读全文
posted @ 2019-05-20 00:23 Tu9oh0st 阅读(1397) 评论(0) 推荐(0)
摘要:"上一篇文章" 讲述了一个服务如何从配置中心读取文件,配置中心如何从远程git读取配置文件,当服务实例很多时,都从配置中心读取文件,这时可以考虑将配置中心做成一个微服务,将其集群化,从而达到高可用 准备工作 创建一个eureka server工程,用作服务注册中心。 在其pom.xml文件引入Eur 阅读全文
posted @ 2019-05-19 21:27 Tu9oh0st 阅读(214) 评论(0) 推荐(0)
摘要:在 "上一篇文章" 讲述zuul的时候,已经提到过,使用配置服务来保存各个服务的配置文件。它就是Spring Cloud Config。 简介 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。在Spring Cloud中,有分布式配置中心组件sp 阅读全文
posted @ 2019-05-18 23:13 Tu9oh0st 阅读(305) 评论(0) 推荐(0)
摘要:在微服务架构中,需要几个基础的服务治理组件,包括服务注册与发现、服务消费、负载均衡、断路器、智能路由、配置管理等,由这几个基础组件相互协作,共同组建了一个简单的微服务系统。一个简单的微服务系统如下图: Cloud微服务系统中,一种常见的负载均衡方式是,客户端的请求首先经过负载均衡(zuul、Ngni 阅读全文
posted @ 2019-05-18 22:15 Tu9oh0st 阅读(368) 评论(0) 推荐(0)
摘要:前段时间,看了菜鸟入门,较浅的认识一下golang的语法习惯和规则,然后跟别人做了个爬虫项目,但是对于golang语言的语法结构还不是很懂。又看了遍《go实战》第二章。 构建程序在构建可执行文件时,需要找到这个已经声明的main函数,把它作为程序的入口。 关键字import就是导入一段代码,让用户可 阅读全文
posted @ 2019-05-18 20:28 Tu9oh0st 阅读(186) 评论(0) 推荐(0)
摘要:在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调用(RPC),在Spring Cloud可以用RestTemplate+Ribbon和Feign来调用。为了保证其高可用,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证100%可用,如果单个服务出现问题,调用这 阅读全文
posted @ 2019-05-16 23:58 Tu9oh0st 阅读(292) 评论(0) 推荐(0)
摘要:"上一篇文章" ,讲述了如何通过RestTemplate+Ribbon去消费服务,这篇文章主要讲述如何通过Feign去消费服务。 Feign简介 Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可使用Fei 阅读全文
posted @ 2019-05-16 00:30 Tu9oh0st 阅读(317) 评论(0) 推荐(0)
摘要:一、go语言爬取豆瓣电影top250 go package main import ( "net/http" "io/ioutil" "os" "fmt" "strconv" "regexp" "time" ) //定义新的数据类型 type Spider struct { url string h 阅读全文
posted @ 2019-05-15 22:47 Tu9oh0st 阅读(919) 评论(0) 推荐(0)
摘要:在微服务架构中,业务都会被拆分成一个独立的服务,服务与服务的通讯是基于http restful的。Spring cloud有两种服务调用方式,一种是ribbon+restTemplate,另一种是feign。 ribbon简介 Ribbon is a client side load balance 阅读全文
posted @ 2019-05-14 21:42 Tu9oh0st 阅读(244) 评论(0) 推荐(0)
摘要:创建服务注册中心 在这里,我还是采用Eureka作为服务注册与发现的组件。 首先创建一个空项目 首先创建一个空项目,再创建一个maven项目,首先创建一个主Maven工程,在其pom文件引入依赖,spring Boot版本为2.0.3.RELEASE,Spring Cloud版本为Finchley. 阅读全文
posted @ 2019-05-13 23:44 Tu9oh0st 阅读(501) 评论(0) 推荐(0)