一个不错的架构图:基于SpringCloud的微服务项目

         https://github.com/hanlin5566/HJ-MicroService...

REST面向资源架构 RESTful架构

 REST基础概念:在REST中的一切都被认为是一种资源。每个资源由URI标识。使用统一的接口。处理资源使用POST,GET,PUT,DELETE操作类似创建,读取,更新和删除(CRUD)操作。无状态。每个请求是一个独立的请求。从客户端到服务器的每个请求都必须包含所有必要的信息,以便于理解。通信都是通过展现。例如XML,JSON  以状态为角度,提出将状态移植到客户端处理的新思路。提出一个既适于客户端应用又适于服务端的应用的、统一的Web视图。适合B/SC/SS/S。HTTP客户端与HTTP服务器之间的差别,对架构来说无所谓。一个软件应可以既充当Web客户端又充当Web服务器,而无须采用两套完全不同的APIs。  提供资源操作方法的统一:POST,GET,PUT,DELETE,以超文本或超媒体驱动(hypertext/Hypermedia)的状态转移是REST架构核心。操作带来状态变化,状态转移遍历使用链接导航方式实现。  如下图:首先通过GET方法访问/well-known-uri(1)获得当前所有资源(2),然后选择其中一个资源名FooService通过Get方法访问/well-k...

DDD CQRS架构和传统架构的优缺点比较

最近几年,在DDD的领域,我们经常会看到CQRS架构的概念。我个人也写了一个ENode框架,专门用来实现这个架构。CQRS架构本身的思想其实非常简单,就是读写分离。是一个很好理解的思想。就像我们用MySQL数据库的主备,数据写到主,然后查询从备来查,主备数据的同步由MySQL数据库自己负责,这是一种数据库层面的读写分离。关于CQRS架构的介绍其实已经非常多了,大家可以自行百度或google。我今天主要想总结一下这个架构相对于传统架构(三层架构、DDD经典四层架构)在数据一致性、扩展性、可用性、伸缩性、性能这几个方面的异同,希望可以总结出一些优点和缺点,为大家在做架构选型时提供参考。前言CQRS架构由于本身只是一个读写分离的思想,实现方式多种多样。比如数据存储不分离,仅仅只是代码层面读写分离,也是CQRS的体现;然后数据存储的读写分离,C端负责数据存储,Q端负责数据查询,Q端的数据通过C端产生的Event来同步,这种也是CQRS架构的一种实现。今天我讨论的CQRS架构就是指这种实现。另外很重要的一点,C端我们还会引入EventSourcing+InMemory这两种架构思想,我认为这两种...

Java 架构师眼中的 HTTP 协议

HTTP协议的内容比较多,本文我们将分六部分来介绍。HTTP协议的基本内容什么是HTTP协议首先我们来看协议是什么?协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守有规则的文本格式。一但有了协议,就可以使很多公司分工起来,有些公司做Server端,如Tomcat,而有些公司就可以做浏览器了。这样大家只要一套约定,彼此的通讯就会相互兼容。接下来我们看什么是HTTP?HTTP是基于TCP/IP的应用层通信协议,它是客户端和服务器之间相互通信的标准。它规定了如何在互联网上请求和传输内容。通过应用层协议,我的意思是,它只是一个规范了主机(客户端和服务器)如何通信的抽象层,并且它本身依赖于TCP/IP来获取客户端和服务器之间的请求和响应。默认的TCP端口是80端口,当然,使用其他端口也是可以的。然而,HTTPS使用的端口是443端口。HTTP协议的简单历史根据上图,我们可将HTTP协议的发展历程分为五个阶段。第一阶段,1996年之前。第一版的HTTP文档是1991年提出来的HTTP/0.9,其主要特点有:(1)它仅有一个GET方法。(2)没有header数据块。(3)必须以HTML格...

高可用架构及异地双活系统设计实战

 应用的一致性问题:在设计之初,就要避免这种问题。不是遇到才去想怎么修数据     5:架构设计的问题引发                      阿里的单元化方案,不会出现跨机房的问题读比较多,写比较少,微博  业务的妥协:业务的主键不是使用db的自增机制读多写少,单点写,其它机房部署的db节点,只能是slave多点接入机房提供服务  RabbitMQ是有ACK的Kafka设计之初就是高吞吐量,是没有ACK的kafka也有ack=all ,消费也可以提交offset业务的特点,将重要的服务做高可用开发成本、维护成本  ...

EF架构~对AutoMapper实体映射的扩展

http://www.cnblogs.com/lori/p/3327898.html///<summary>///AutoMapper扩展方法///</summary>publicstaticclassAutoMapperExtension{///<summary>///集合对集合///</summary>///<typeparamname="TResult"></typeparam>///<paramname="self"></param>///<returns></returns>publicstaticList<TResult>MapTo<TResult>(thisIEnumerableself){if(self==null)thrownewArgumentNullException();Mapper.CreateMap(self.GetType(),typeof(TResult));return(List<TResult>)...

经典三层架构

TheRepositoryPatternwithEFCodeFirst&DependencyInjectioninASP.NETMVC3Ray_Liang,4Jul2011GPL34.67(58votes)Ratethis:vote1vote2vote3vote4vote5Inthisarticle,IwillexplainhowtoimplementRespositorypatternwithEF4.1codefirstandhowtoenabledependencyinjectionfeaturetoyourASP.NETMVC3Applications.Downloaddemo-1.42MBIntroductionThesedays,IstartedusingEFcodefirstandthoughtabouthowcouldItakeadvantagefromitformyrecentproject.MyprojectisbasedonMVC3andtherearesomechallengestocontinueupdatingthisproject.Atthattim...
代码星球 代码星球·2020-04-04

从Microsoft.AspNet.Identity看微软推荐的一种MVC的分层架构

Microsoft.AspNet.Identity是微软在MVC5.0中新引入的一种membership框架,和之前ASP.NET传统的membership以及WebPage所带来的SimpleMembership(在MVC4中使用)都有所不同。Microsoft.AspNet.Identity是符合微软开放Owin标准里面Security标准的一种实现。且在MVC5中默认使用EntityFramework作为Microsoft.AspNet.Identity的数据存储实现。从Microsoft.AspNet.Identity里面,我们其实可以看出微软所采用的一种MVC的分层架构;或许这种分层架构我们可以学习并应用在自己的开发当中。Microsoft.AspNet.Identity从Preview到RC到RTM一直都有变化,下面我当然以RTM的结构来简单讲解一下这种值得借鉴的参考分层架构。首先要说明的是,我上面提到的分层架构不是指MVC本身的分层,而是指Controller与Data之间的分层(与耦合方式)。你在VS2013中创建一个带有独立账号管理的MVC项目后,默认就有一个用于登录...

IIS 8.0 Asp.net warm up Auto Start & Application Initialization

http://www.codeproject.com/Articles/795265/IIS-Asp-net-warm-up-Auto-Start-Application ...
代码星球 代码星球·2020-04-04

Pycharm中实现多个项目共存的方式

一、背景在Python学习中,使用pycharm只能打开一个项目,如果想在一个pycharm中同时打开多个项目,该怎么办呢?由于学习中遇到需要打开多个项目,所以就百度查询了一下方法。二、解决办法1、打开pycharm,选择file>settings,如下图:2、打开setting设置对话框,选择Project项目打开下拉列表,选择ProjectStructure选项,如下图:3、点击界面上的AddContentRoot,在弹出的对话框中选择需要添加的项目即可,如图4、添加成功后,在打开pychar就可以看到两个项目同时在界面中出现了,如下图:========================================================================参考文档:https://blog.csdn.net/m0_37586991/article/details/73844247 ...

pycharm工具下代码下面显示波浪线的去处方法

近期安装了python后,发现使用pycharm工具打开代码后发现代码下边会有波浪线的显示;但是该代码语句确实没有错误,通过查询发现了两种方法去掉该波纹的显示,下面就具体说明一下:方法一:打开pycharm在右下方有一个医生头像的小图标,点击打开,如下图:选择1打开对话框,然后按照2将级别调制Syntax下,即可将本文件中的波浪线去掉,但是该方法只针对本文件生效其他文件还是会有相同的问题。方法二:1、选择文件选择file—Settings,如下图打开setting对话框2、选择Editur—ColorScheme—General选项,然后选择右边对话框中的ErrorsandWarnings选项,选择选项下方的weakWaring,然后将界面右边的Effects去掉勾选即可。如下图:这样就可以彻底去除掉文件中讨厌的波浪条纹了!...

Pycharm报错解决:error:please select a valid Python interpreter

问题描述:之前PC上安装的是Python2,后来工作需要转成Python3了。然后在用pycharm运行Python2的程序时发现源程序运行报错(出去语法错误)error:pleaseselectavalidPythoninterpreter问题原因:在pycharm导入源项目的时候没有选择运行Python的程序解决办法:1、更改Pycharm的设置 打开settings(CTRL+ALT+S)或者file>settings,打开配置框,如下图:2、在查询框中输入interpreter,进行查询 操作步骤如下:第一步:输出要查询的内容第二步:选择ProjectInterpreter第三步:选择界面右边上的配置按钮,右击选择addlocal第四步:选择systeminterpreter,然后选择安装的Python路径即可 ...

pycharm 安装和首次使用

 由于本人也是开发语言的学习小白,所以对于开发时使用的工具也不算太熟悉,不过这里还是要推荐一下本人使用过的两款工具:1、pycharm ;2、eclipse这是我用的比较顺手的两个工具当然这两个各有各的好处,这个还是交给各位自行去体会吧!本人认为只要自己使用的顺手即可今天的内容主要讲解一下pycharm的安装和首次使用时的安装配置!一、安装1、从官网下载最新的pycharm版本:https://www.jetbrains.com/pycharm/download/download-thanks.html?platform=windows&code=PCC点击之后会自动进行下载2、下载完成后,直接双击下载好的exe文件进行安装,安装截图如下:点击Next进入下一步:点击Next进入下一步:点击Install进行安装安装完成后出现下图界面,点级Finish结束安装二、安装完成后首次配置1、首次打开如下图:2、点击CreateNewProject,进入如下图的界面,图中的Location是选择你安装的python的位置,选择好后,点击create3、在进入的界面如...
代码星球 代码星球·2020-04-04

微服务时代之网关及注册中心高可用架构设计

1.微服务关系架构图简要说明:(一)所有应用或者服务要想对外提供服务(包括网关),必须首先到注册中心进行注册。    注册中心可以说是微服务架构中的”通讯录“,它记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到这里,当服务需要调用其它服务时,就到这里找到服务的地址,进行调用。    总结:微服务在水平方向上将项目按不同功能划分为不同部分,而服务注册中心就相当于一个中转站,服务客户端(服务消费者以及服务提供者)将提供的服务注册到注册中心,当其他客户端需要该功能时通过注册中心调用服务(二)所有访问通过服务网关进行访问,然后由服务网关路由到对应服务中心进行交互访问。(1)网关层对外部和内部进行了隔离,保障了后台服务的安全性。(2)对外访问控制由网络层面转换成了运维层面,减少变更的流程和错误成本。(3)减少客户端与服务的耦合,服务可以独立运行,并通过网关层来做映射。(4)通过网关层聚合,减少外部访问的频次,提升访问效率。(5)节约后端服务开发成本,减少上线风险。(6)为服务熔断,...

pycharm的中文汉化

下载pycharm软件然后通过下面的网站进行激活:http://idea.lanyus.com/激活好后下载汉化包:链接:http://pan.baidu.com/s/1i5zaGgX 密码:g7wy 1、将安装目录下的lib目录下的resources_en.jar文件复制出来,并更名为resources_cn.jar 2、双击打开resources_cn.jar(注意是打开而不是解压出来),将下载的汉化包zh_CN目录下的所有文件拖到刚才打开的resources_cn.jar文件内的messages目录中,并保存 3、将resources_cn.jar文件复制回lib目录,将原来的resources_en.jar重命名为别的名字(或者删除这个文件),重启朋友charm后就可以显示中文了切记切记: 如果打开后显示乱码,请先删除resources_cn.jar,然后打开PyCharm,在菜单上依次选择 File->Settings->Appearance&Behavior->Appearance->...
代码星球 代码星球·2020-04-04
首页上一页...6061626364...下一页尾页