精华内容
下载资源
问答
  • 我们在进行SSM(SpringMVC+Spring+...2.SPringle:核心思想就是IOC,将组件交由工厂进行管理。 3.MyBaties:数据持久化的工具。 关于框架整合的重点就在于这些配置文件,一个是applicationContext.xml ,另外一...

    我们在进行SSM(SpringMVC+Spring+MyBaties)框架整合的时候,首相明确一下他们各自的功能:

    1.SpringMVC:主要负责请求转发和流程控制,也就是我们说的控制层。

    2.Spring:核心思想就是IOC,将组件交由工厂进行管理。

    3.MyBaties:数据持久化的工具。

    关于框架整合的重点就在于这些配置文件,一个是applicationContext.xml

    ,另外一个就是web.xml,这些配置文件中的作用我们也需要大致进行梳理,这样擦能方便我们进行记忆:

    DAO层:

    其实际工作就是做Spring与MyBaties的整合,将原来我们在mybaties-config.xml中配置的信息写到applicationContext.xml中,基于配置文件参数化的思想,我将数据库链接的相关信息做成了配置文件:

    jdbc.driver:com.mysql.jdbc.Driver
    jdbc.url:jdbc:mysql://localhost:3306/stu?characterEncoding=UTF-8
    jdbc.username:root
    jdbc.password:
    

    applicationContext.xml中关于DAO层的先关配置:

      applicationContext.xml中的相关配置:
    
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bean="http://www.springframework.org/schema/context"
           xmlns:context="http://www.springframework.org/schema/context"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
    
        <!--读取小配置文件  获取连接数据库的参数-->
       <context:property-placeholder location="jdbc.properties"></context:property-placeholder>
    
        <!--配置数据源   使用DBCP连接池-->
        <bean id="basicDataSource" class="org.apache.commons.dbcp.BasicDataSource">
            <!--连接数据库的相关参数-->
            <property name="driverClassName" value="${jdbc.driver}"></property>
            <property name="url" value="${jdbc.url}"></property>
            <property name="username" value="${jdbc.username}"></property>
            <property name="password" value="${jdbc.password}"></property>
        </bean>
    
        <!--自动创建sqlSessionFactory-->
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <!--构建sqlSession需要数据源-->
            <property name="dataSource" ref="basicDataSource"></property>
            <!--起别名   给该包下所有的类起别名,默认别名为该类的类名-->
            <property name="typeAliasesPackage" ><value>com.baizhi.entity</value></property>
            <!--mapper文件注册-->
            <property name="mapperLocations">
                <list><!--默认为com.baizhi.mapper包下面以Mapper.xml结尾的文件进行注册-->
                    <value>com/baizhi/mapper/*Mapper.xml</value>
                </list>
            </property>
        </bean>
    
        <!--自动创建Dao的实现类对象-->
        <bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    
          <!--告知Spring  为com.baizhi.dao包下面的所有接口构建DAO的实现类对象-->
            <property name="basePackage">
                <value>com.baizhi.dao</value>
            </property>
        </bean>
    </beans>
    

    Service层:

    有了Spring之后,我们通过AOP编程的思想,将 service层的事务控制也交由工厂来管理,相关的核心实现类已经由MyBaties官方给我们提供,我们只需要重点理解这些类的使用,有余力的同学可以查看一下相关的源码实现:

      applicationContext.xml中的相关配置:
    <!--配置service-->
        <bean id="studentService" class="com.baizhi.service.serviceImpl.StudentServiceImpl">
            <property name="studentDao" ref="studentDao"></property>
        </bean>
        <bean id="employeeService" class="com.baizhi.service.serviceImpl.EmployeeServiceImpl">
            <property name="employeeDao" ref="employeeDao"></property>
        </bean>
    
        <!--引入事务控制的核心代码-->
        <bean id="dataSourceTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource"></property>
        </bean>
    
        <!--描述事务的属性-->
        <tx:advice id="tsdm" transaction-manager="dataSourceTransactionManager">
            <tx:attributes>
                <tx:method name="modify*"/>
                <tx:method name="*" propagation="SUPPORTS" read-only="true"></tx:method>
            </tx:attributes>
        </tx:advice>
    
       	 <aop:config>
            <!--定义切入点-->
            <aop:pointcut id="pc" expression="execution(* com.baizhi.service..*.*(..))">       			</aop:pointcut>
            <!--组装切面-->
            <aop:advisor advice-ref="tsdm" pointcut-ref="pc"></aop:advisor>
        </aop:config>
    

    Controller层:

    控制层的配置文件主要存在于web.xml中,其主要作用相当于我们原来在web.xml中配置的struts2的核心过滤流,主要负责的请求转发:

    web.xml中的配置:
    
    <web-app>
        <!--SpringMVC核心相当于Struts2的核心过滤流    作用:请求转发-->
        <servlet>
            <servlet-name>dispacherServlet</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    
            <!--构建核心类时需要依赖于SpringMVC的相关配置文件做初始化-->
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath:dispatcher.xml</param-value>
            </init-param>
    
            <!--指定核心类的加载时机    web容器启动时加载该类
             <load-on-startup>  标签指定该Servlet被加载的时机
             0或者大于0:  tomcat启动时加载
             数字越小  加载执行越早  优先级就越高
             小于0或者不配置:  servlet使用时被加载
            -->
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>dispacherServlet</servlet-name>
            <url-pattern>*.do</url-pattern>
        </servlet-mapping>
    </web-app>
    
    
    dispatcher.xml中的配置信息:
    
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:mvc="http://www.springframework.org/schema/mvc"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    
        <!--告知SpringMVC框架在哪一个包下使用了对应的注解-->
        <context:component-scan base-package="com.baizhi.controller"></context:component-scan>
        <!--配置springMVC的视图解析器-->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver">
            <property name="prefix" value="/"></property>
            <property name="suffix" value=".jsp"></property>
        </bean>
        <!--激活url解析器-->
        <mvc:annotation-driven></mvc:annotation-driven>
    
    </beans>
    
    展开全文
  • Spring框架梳理

    2019-05-08 19:57:05
    Spring Spring 经典教程 Spring知识点 ...也就是我们经常说的spring框架,包括了ioc依赖注入,Context上下文、bean管理、springmvc等众多功能模块,其他spring项目比如spring boot也会依赖spring框架 ...

    Spring

    Spring知识点
    spring系列包含非常多的项目,可以满足java开发中的方方面面
    在这里插入图片描述
    一、5个常用的spring框架

    1.spring framework
    也就是我们经常说的spring框架,包括了ioc依赖注入,Context上下文、bean管理、springmvc等众多功能模块,其他spring项目比如spring boot也会依赖spring框架

    2.spring boot
    它的目标是简化Spring应用和服务的创建、开发与部署,简化了配置文件,使用嵌入式web服务器,含有诸多开箱即用的微服务功能,可以和spring cloud联合部署

    3.Spring Data
    是一个数据访问及操作的工具集,封装了多种数据源的操作能力,包括:jdbc、Redis、MongoDB等。

    4.Spring Cloud
    是一套完整的微服务解决方案,是一系列不同功能的微服务框架的集合。Spring Cloud基于Spring Boot,简化了分布式系统的开发,集成了服务发现、配置管理、消息总线、负载均衡、断路器、数据监控等各种服务治理能力。比如sleuth提供了全链路追踪能力,Netflix套件提供了hystrix熔断器、zuul网关等众多的治理组件。config组件提供了动态配置能力,bus组件支持使用RabbitMQ、kafka、Activemq等消息队列,实现分布式服务之间的事件通信。

    5.Spring Security
    主要用于快速构建安全的应用程序和服务,在Spring Boot和Spring Security OAuth2的基础上,可以快速实现常见安全模型,如单点登录,令牌中继和令牌交换。你可以了解一下oauth2授权机制和jwt认证方式。

    二、Struts具体作用
    struts是曾经非常火爆的web组合ssh中的控制层。我们知道web服务一般都采用MVC分层模型构建,就是model层负责内部数据模型,controller负责请求的分发控制,view层负责返回给用户展示的视图。struts实现的就是其中控制层的角色。

    Strurs采用Filter实现,针对类进行拦截,每次请求就会创建一个Action。使用struts的SSH组合已经逐渐被使用springMVC的SSM组合代替,也就是Spring-MVC+Spring+MyBatis的组合,一方面远影是由于struts对几次安全漏洞的处理,让大家对struts的信心受到影响;另一方面,springmvc更加的灵活,不需要额外配置,不存在和spring整合问题,使用更加方便,所以建议以SSM框架的学习为主。

    三、常用的ORM框架
    ORM就是对象关系匹配,是为了解决面向对象与关系数据库存在的互不匹配的问题。简单来说,就是把关系数据库中的数据转换成面向对象程序中的对象。

    常用的ORM框架有Hibernate和MyBatis,也就是ssh组合和ssm组合中的h与m。

    Hibernate和MyBatis的特点和区别:

    Hibernate对数据库结构提供了完整的封装,实现了POJO对象与数据库表之间的映射,能够自动生成并执行SQL语句。只要定义了POJO到数据库表的映射关系,就可以通过Hibernate提供的方法完成数据库操作。Hibernate符合JPA规范,就是Java持久层API。

    MyBatis通过映射配置文件将SQL所需的参数和返回的结果字段映射到指定对象,mybatis不会自动生成sql,需要自己定义sql语句,不过更方便对sql语句进行优化。

    总结:

    1.hibernate配置要比mybatis复杂的多,学习成本也比mybatis高。mybatis,简单、高效、灵活,但是要自己维护sql

    2.hibernate功能强大、全自动、适配不同数据库,但是非常复杂,灵活性稍差。

    四、Netty简介
    Netty是一个高性能的一部事件驱动的网络通信架构,Netty对JDK原生NIO进行封装,简化了网络服务的开发,下文会详细讲

    另外同类型的框架还有mina、grizzly,不过目前使用的相对较少

    NIO与BIO的区别、NIO的运行原理和并发使用场景

    五、RPC服务
    Motan、Dubbo、gRPC都是比较常用的rpc框架,可以提供完善的服务治理能力,java版本的通信层都是基于前面提到的Netty实现,它们的特点稍后介绍

    六、其他常用框架
    jersy和restEasy都是可以快速开发restful服务的框架。
    和springmvc相比,折扣ianggekuangjia都是基于jax-rs标准,而springmvc基于servlet,使用自己构建的API,是两个不同的标准。

    shiro框架是一个与spring security类似的开源的权限管理框架,用于访问授权、认证、加密及会话管理,能够支持单击与分布式session管理。

    相比security,shiro更加简单易用。

    参考
    https://mp.weixin.qq.com/s/fgC_8xV-Ru671NZoPiUZlw

    展开全文
  • 框架梳理|企业大数据管理之道

    千次阅读 多人点赞 2017-02-24 14:08:54
    大数据管理——企业转型升级与竞争力重塑之道》一书,从大数据驱动决策、大数据优化管理、大数据智慧营销、大数据发现创新、大数据推动转型、大数据保障安全六个维度全面分析了大数据对传统企业的应用价值,提供可借鉴...

    作为数据从业者,有时候也会被大数据所“迷惑”。究竟何为大数据,数据的价值体现在何处,有哪些值得借鉴的成功模式?

    恰逢最近在看《大数据管理——企业转型升级与竞争力重塑之道》一书,文章从大数据驱动决策、大数据优化管理、大数据智慧营销、大数据发现创新、大数据推动转型、大数据保障安全六个维度全面分析了大数据对传统企业的应用价值。提供可借鉴的案例和深度有格局的思考,内容深入浅出、通俗易懂,值得推荐。


    维度一:大数据驱动决策(敲黑板:重点!)

    数据对决策的指导意义。多维度和大数据的数据来保证数据的质量,让数据模型的数据基础坚固牢靠;大数据帮助C端消费者快速决策,帮助企业决策者拿到的数据分析更全面可靠。


    数据支持决策的六大内容。实现数据驱动决策的基础在于建立数据文化,在企业自上而下地建立起“决策要通过数据来说话的文化”。具体哪六大内容,数据支持决策,在企业中的核心内容就是数据管理投资决策、数据驱动效率提升、数据驱动营销管理、数据驱动安全管理、数据管理员工绩效、数据管理价值链。

    企业决策机制变革。如何理解大数据引起的变革。因为大数据可以帮助企业了解自身运营状况,大数据提供决策支持的能力远超传统的基于经验的决策模式,大数据可以客观衡量业务发展、风险控制。大数据如何支持不同类型决策要求?一是通过静态描述性数据反映企业状态;二是通过静态的诊断性数据发现和判断运营中的问题、机会出现的原因;三是通过动态的预测性数据对运营进行预测;四是使用动态指导性数据,解决企业应该做什么的问题。(就是彼得·德鲁克所说的“做正确的事”)

    其实大数据驱动决策最终还是需要有落地的方案和系统。比如以下的几个方案,方案细节不做描述,只展现成果,欢迎探讨。


    维度二:大数据优化管理(敲黑板:重重点!)

    数据对企业管理的影响力。企业管理主观范畴内,大数据可促进企业的战略管理;企业管理客观范畴内,大数据可优化营销、研发、供应链、人力资源、财务、信息技术、法务等管理。例如大数据可实现精准营销;缩短新药研发周期,提高新药研发成功率;提高招聘过程的严格性、绩效考评的客观性、薪酬管理的科学性;优化会计管理、成本核算、预算管理和企业数据资产估值;优化IT设备的使用,提升设备对企业、用户的价值;提高企业财务反腐的高效性和可控性,增强IP(知识产权)保护的可操作性以及发掘出法务部门新的业务点:业务经营产生的数据的所有权。

    从信息化到自动化。先后四次工业革命(第四次是2013年开始的工业4.0),生产方式四次大转变。工业革命、互联网革命、工业互联网这三波互联网浪潮依次来临,我们正处于工业互联网大浪潮之中,前所未有的机遇与挑战并存。Sensor(传感器)、Embedded System(嵌入式系统)、PLC(可编程控逻辑制器)、DCS(分布式控制系统)、SCADA(监视控制和数据采集系统)、DNC(分布式数字控制)、MES(制造执行系统)有巨大的潜力,他们本身可以产生大量的数据。工业互联网促使这些历史沉淀下来的设备重新被部署成网络,联合起来干大事。


    两化融合,企业数字化。把握大数据动向:一纵一横一汇聚,企业纵向充分集成——产品生命周期的环节之间、部门之间、下级单位之间、系统之间、虚拟世界和物理世界之间,横向也充分集成——企业与用户、供应商、合作伙伴之间,数据在所有环节都畅通无阻,始终被高效使用。

    管理者常见问题。企业管理者自身也要思考,什么才是自己的大数据,这些大数据怎么产生,怎么维护,怎么使用,带来什么价值。企业数字化,管理者多多思考是必要的。

    维度三:大数据智慧营销

    收集大数据,了解用户。通过搜集、整理我(第一方)、你(第二方)、他(第三方)三方企业的数据,建立精准的用户画像,为精准的市场营销奠定基础。

    利用大数据,精准营销。利用大数据大数据,通过锁定人群精准引流、按需转化、跨界营销四步走进行精准营销,将潜在客户群扩大并转化为真正用户。

    丰富大数据,长期联系。利用大数据,通过招募会员、互动深知、多次转化持续手机用户相关资料和用户互动数据,减少成本和提高转化率。

    大数据与物联网结合。物联网把新一代IT技术充分运用在各行各业,大大地拉近产品服务商与用户的距离。为B2C和B2C领域正在提供着个性化的精准服务,开创更加精准的数据智慧营销新天地。

    维度四:大数据发现创新

    大数据引导产品创新。大数据正在驱动保险产品创新、医药产品创新、创意创新、人工智能创新。

    定制个性化产品。大数据推动着个性化服务、个性化产品和3D打印,大数据+物联网是标准化产品有个性化体验。

    驱动生产供应链创新。一直以来,供应链的管理都是一门非常复杂的学科,从销量的预估到原材料的采购、生产计划的制定、生产线的管理、产品质量的监控、库存的管理、用户订单的处理、仓储运输的计划运营,一环紧套一环,紧密相连,互相影响因素非常多。对于这种复杂的流程,人工管理已经很难做到优化了。而利用大数据及现金的数据模型来分析、控制、监测、优化供应链则变成了最有效的方法。

    1、利用大数据精确地预测需求,权衡采购和生产计划。需求预测是整个供应链的源头,其决定了整个供应链的计划,包括采购计划、生产计划、调货计划,也直接影响到库存策略、生产安排以及对终端用户的订单交付率。企业需要通过有效的定性和定量的预测分析手段,运用大数据将过去的历史需求数据和现在的市场有关因素相结合,对将来的需求作出准确预测。很多企业用大数据和多个数学模型试图解决这个问题,用多个“What IF”的预测模型来计算不同的突变因素对整个生产链、供应链的影响,以寻求最佳平衡点。

    2、利用大数据优化库存,提高仓储运输效率。除了生产成本以外,库存成本、仓储运输成本通常是企业的成本大头。库存成本不仅影响仓储费用,还极大程度地决定了现金流和新产品上市的速度。不断优化库存、完善补货和库存协调机制,可以减少过量库存,降低库存持有成本。利用大数据分析来做库存管理,确保货品先进先出,通过改变仓库设计来减少产品报废、提高收货提货效率。利用大数据分析,还可以通过做SKU(品类优化)来给出产品停产建议,也可以通过提高运输效率,变革运输模式来达到零库存。

    3、利用大数据提高生产质量,降低生产风险,提供及时检修。在农业生产、食品加工、生产流水线上应用大数据来控制生产经营,通过大数据分析预测,可以自动预测出产品质量、监控产品生产过程,大大提高产品的质量。在互联网和大数据推动下,不光在生产线上的设备维护可以预测,出售后的设备也可以通过远程数据采集、云计算来做维护的预测。生产厂家通过对数据进行采集分析,就可以提前预知哪些设备需要维护,及时维修。既增加了厂商维护收入,又提高了用户满意度和忠诚度。

    4、利用大数据整体优化供应链。供应链是链条,环环相扣;供应链也是张网,错综复杂。大数据可以挖掘出供应链各因素之间的相关性和相关程度,给管理人员能提供实时数据和预测,帮助管理人员作出正确的决策;通过数据实时监控,作出实时的自动决策,指挥机器设备自动调节、工人工作指令优化;阶段性地利用大数据作绩效评估,找到薄弱环节,做流程改善或设备升级。

    关于这个大数据驱动供应链创新,这里举俩“栗子”。



    维度五:大数据推动转型

    智慧制造(协同制造、个性化定制与产品服务化)。如何打通企业自身的信息化系统和产业链上下游不同企业的环节呢?一靠网络,二靠数据。网络就是互联网,通过互联网将人与人、物与物、人与物相连,构建生态系统;数据就是大数据,通过大数据的顺畅流动,交互升华完成生态系统的整合。

    现代农业(精准农业、农业电商、农产品全程追溯)。工业的今天就是农业的明天,随着农业的关注点从农产品生产环节逐步扩展到流通、消费环节,农业势必会向智能化、移动化、个性化、服务化和精细化的方向发展。农业大数据的可靠来源(手工方式以外),是管理信息化与成产自动化背后的各类系统和设备。农业的管理信息化和生产自动化需要依靠互联网相连接。互联网与大数据打通工业、农业全产业链,推动两化融合,推动农业向精准农业方向转型,走农业电商之路,实现农产品全程可追溯。



    智慧能源(预测性维护、能源互联网与消费端大数据挖掘)。大数据广泛存在于能源行业的各个环节。大数据推动以油气和店里为代表的能源行业向节能、高效、智能、互联方向转型。


    智慧医疗(就医体验优化、诊疗水平提升与设备智能化)。大数据通过对医疗机构、医药、医疗设备、医疗报销的数据分析支撑,优化就医体验,提升诊疗水平,提高设备智能化水平,推动医疗保险普及。

    维度六:大数据保障安全

    通过大数据来预测并提前避免安全事件的发生,强化社会安全管理;通过大数据来完善人身安全保证,实现预测性维修,促进企业安全管理;通过大数据技术监控用户操作行为,发现潜在攻击,提前预警安全风险,促进企业从被动防御性的管理向主动监控、快速响应的模式转变,完成企业信息安全管理体系变革;银行、政府、第三方消费平台等,利用大数据技术来判断用户行为的合法性,甄别网络诈骗和可以汇款,保证个人大数据安全;尽管在处理安全问题上,大数据分析应用程序的效果很显著,但大数据的发展也带来了管理安全的挑战,需要我们不断努力,保护大数据安全。

    大数据实施框架性建议

    关于企业实施大数据,本书作者给出了几条大数据的实施建议。一是建立企业数据文化;二是建立企业数据战略;三是建立企业数据组织能力;四是选择合适的技术平台;五是建设节奏要切入点有效,小步快走;六是大数据建设心态要平和,不断进步。

    遗憾的是,本书直至最后也未明确列出一个详细的大数据方案,确实,如今多数企业仍旧在摸索阶段,对于大数据无论是技术、方案、商业模型借鉴有待思考和推敲。

    纵观全书,关于企业和大数据,我一直认为数据没有大小之分,关键在于利用,商业价值大了即是所谓的大,利用小了也未必称之为小。关于企业的数据实施的方案,读者们可以翻翻看专栏中的其他文章或者与我留言,欢迎与我探讨。

    文|Captain

    本文出自帆软数据应用研究院

    —   帆软数据应用研究院  —

    帆软数据应用研究院专注于企业的数据应用研究,致力于让数据成为生产力。主要分享行业趋势、市场动态、理论观点以及企业的数据应用实践案例。

    展开全文
  • micro微服务框架梳理

    2019-04-30 15:07:59
    最近学了个微服务的新框架,根据自己的理解,梳理了下这个框架,做了个架构图 Micro 工具集:管理和micro框架的包,可以启动API网关,指定处理器,提供了服务创建模版等功能,并且micro工具集的各个模块是可插拔的...

    Micro 架构图

    最近学了个微服务的新框架,根据自己的理解,梳理了下这个框架,做了个架构图
    micro 架构图
    Micro 工具集:管理和micro框架的包,可以启动API网关,指定处理器,提供了服务创建模版等功能,并且micro工具集的各个模块是可插拔的插件化开发模式
    go-micro: micro 框架的核心基础服务,也是可插拔化的
    关于这两个模块的介绍,可以看我的这篇博客:micro如何实现插件化

    API网关

    API 网关,是服务对外暴露的唯一接口,micro 为我们提供了多种处理模式来处理来到的http请求,对应图中的handler,下面是每个handler 的介绍(引用官方):

    • API handler - 处理http请求,通过RPC来完全控制http的请求/响应。
    • RPC handler - 处理json及protobuf格式的POST请求,并转向RPC。
    • Proxy handler - 处理http请求并转向反向代理。
    • Event handler - 处理任意的http请求并向消息总线分发消息。
    • Web handler - 包含web socket的http反向代理。

    除了这几种处理器的方式外,micro Api 网关还提供了一个直接访问service 方式,即图中的rpc 方式,这种方式是通过访问 http:ip:8080/rpc, 然后在post 提交的内容指定 服务路径的方式,绕过 micro web、micro api 等 直接访问servcies,例如:

     curl -d 'service=go.micro.srv.greeter' \   -----服务路径
         	-d 'method=Say.Hello' \           	 -------处理方法
         	-d 'request={"name": "John"}' \		--------请求参数
        	 http://localhost:8080/rpc
    

    相关的内部服务

    micro web 和 micro api 是我们业务逻辑的实现,可以是网站后台,可以是restful api ,通常对services的调用,都是通过web和api的间接调用,是我们提供给外部调用的服务模块;services 是我们内部的rpc微服务,可以是一些通用的、核心的服务组件或者些其他的我们希望对外封闭的东西,比如:游戏充值,跨游戏之间的服务调用等。micro client 是我们services的客户端,micro web,micro api 等都是通过client 调用 services。

    微服务框架 (go-micro的基础服务)

    这部分是框架的基础模块了,包括服务的发现、注册;发布订阅订阅功能;负载均衡;同步通信协议;异步通信;通信元数据的编码方式;(引用官网的介绍)

    • 注册(Registry)
      注册提供了服务发现机制来解析服务名到地址上。它可以使用Consul、etcd、zookeeper、dns、gossip等等提供支持。服务使用启动注册关机卸载的方式注册。服务可以选择性提供过期TTL和定时重注册来保证服务在线,以及在服务不在线时把它清理掉。

    • 选择器(Selector)
      选择器是构建在注册这上的负载均衡抽象。它允许服务被过滤函数过滤掉不提供服务,也可以通过选择适当的算法来被选中提供服务,算法可以是随机、轮询(客户端均衡)、最少链接(leastconn)等等。选择器通过客户端创建语法时发生作用。客户端会使用选择器而不是注册表,因为它提供内置的负载均衡机制。

    • 传输(Transport)
      Transport是服务与服务之间同步请求/响应的通信接口。和Golang的net包类似,但是提供更高级的抽象,请允许我们可以切换通信机制,比如http、rabbitmq、websockets、NATs。传输也支持双向流,这一强大的功能使得客户端可以向服务端推送数据。

    • 代理(Broker)
      Broker提供异步通信的消息发布/订阅接口。对于微服务系统及事件驱动型的架构来说,发布/订阅是基础。一开始,默认我们使用收件箱方式的点到点HTTP系统来最小化依赖的数量。但是,在go-plugins是提供有消息代理实现的,比如RabbitMQ、NATS、NSQ、Google Cloud Pub Sub等等。

    • 编码(Codec)
      编码包用于在消息传输到两端时进行编码与解码,可以是json、protobuf、bson、msgpack等等。与其它编码方式不同,我们支持RPC格式。所以我们有JSON-RPC、PROTO-RPC、BSON-RPC等格式。

      编码包把客户端与服务端的编码隔离开来,并提供强大的方法来集成其它系统,比如gRPC、Vanadium等等。

    • Server(服务端)
      Server包是使用编写服务的构建包,可以命名服务,注册请求处理器,增加中间件等等。服务构建在以上说的包之上,提供独立的接口来服务请求。现在服务的构建是RPC系统,在未来可能还会有其它的实现。服务端允许定义多个不同的编码来服务不同的编码消息。

    • Client(客户端)
      客户端提供接口来创建向服务端的请求。与服务端类似,它构建在其它包之上,它提供独立的接口,通过注册中心来基于名称发现服务,基于选择器(selector)来负载均衡,使用transport、broker处理同步、异步消息。

    上面的这些组件都可以在micro中,从更高的角度看成是服务(Service)

    go-plugins

    这是micro框架提供的一些插件,我们知道go-micro是可插拔化的,想server、registry、broker等六个基础服务都是可以被替换的,go-plugins 就是这些相关插件的一个集合,也可以根据自己需求自己去实现,关于插件的开发可以通过前面提到那边博客了解下

    展开全文
  • 之教材内容框架梳理 教材的框架(目录): 【心得】主要围绕IT服务展开的,主要分为四部分 - 第一部分IT服务相关基础知识:() 信息系统综合——>信息技术(IT)——>信息技术服务(IT服务) - 第二部分IT...
  • spring等框架相关梳理

    2019-03-30 19:49:58
    spring是一个轻量级的ioc和aop容器框架 提供对事务的管理框架框架的粘合剂。 IOC: 代表控制反转 以前是对象控制其他对象 现在所有的对象被spring控制 把对象注入到bean里 叫动态注入。 以前使用jsp和servlet...
  • MVT框架 项目 init.py(声明是Django框架 python模块) ...admin.py(管理后台) moddels.py(写数据库相关) tests.py(写测试代码) urls.py(路由,同上) views.py(进行请求、处理、应答) ...
  • Apache Shiro 是一个强大且易用的java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro 的易于理解的API,可以快速、轻松地获得任何应用程序,从最小的移动应用到最大的网络和企业应用程序。 主要功能 ...
  • 知识框架: 系统源码是核心 1 开发环境和基础知识 1.1 系统源码在哪里编译? 答:PC机上交叉编译 1.2 PC机上的什么系统下编译? 答:在Ubuntu系统上 1.3 Ubuntu系统如何安装? 答:虚拟机VMware 1.4 Ubuntu系统如何...
  • Linux知识框架梳理

    2015-09-24 22:44:18
    Linux基础知识系统管理Shell脚本编程Linux服务管理web,ftp ,samba,nfs,dhcp,dns,opensshMysql数据库系统Linux集群(LB集群和HA集群)分布式应用缓存系统虚拟化技术xen,kvm,openstack监控和自动化python 转载于:...
  • 1、角色分为营销人员、营业部管理员、分公司管理员和总部管理员,赋权岗位为老总、合规,需要功能模块赋权 2、营销人员查看自己名下客户业务开通情况,关注点在未开通的业务,分两个路径,查询某项业务有哪些客户...
  • 很幸运看到这篇文章,作者对SDWebImage框架内部实现讲解的非常详细 来自: http://www.cnblogs.com/Mike-zh/p/5204240.html 本文目录 下载操作SDWebImageDownloaderOptions和下载过程实现...
  • 负责包管理(我安装在59节点),只需要安装在一个节点上。 Supervisor:负责管理监控所有节点的子进程,需要安装在所有需要监控的节点上(安装在59和8)并且启动所有节点...
  • Yarn是Yet Another Resource Negotiator的缩写, Apache Hadoop YARN 是开源 Hadoop 分布式处理框架中的资源管理和作业调度技术。YARN 负责将系统资源分配给在 Hadoop 集群中运行的各种应用程序,并调度要在不同集群...
  • Spring,SpringMVC,Mybatis的整合以及使用梳理 肯定是在数据库设计先搞好 那也是将Maven项目创建好,导入需要的依赖即可 开始整合 编写好Pojo后,先开始从Dao层开始整合 首先一个Mapper接口对应一个同名的Mapper....
  • 1、说说你对Spring框架的理解? 答:Spring的核心思想是控制反转IOC,依赖注入DI,面向切面编程AOP。 控制反转:通过容器创建对象 AOP:将核心业务逻辑与非核心业务逻辑分开,通过动态代理的方式实现非核心业务逻辑...
  • 为了解决水资源规划庞杂的知识及其整合问题,构建了以工作流为主线的水资源知识管理框架。该框架考虑到水资源综合规划与管理涉及面广、半结构化明显的特点,将知识管理和业务流程相结合,完成水资源规划各流程的知识...
  • 1.JDBC:Java DataBase Connectivity  可以为多种关系型数据库DBMS 提供统一的访问方式,用Java来操作数据库 ... DriverManager // 管理jdbc驱动  Connection //连接(通过DriverManager产生)...
  • 作为前端工程师,在提高上需要重视不是看那些单页面框架的源码,需要重视的是首先熟悉框架的用法,框架在实际项目中的分层是什么样的,组件怎么设计,数据如何和视图高效的解耦,数据管理的用法(例如Vuex),项目中...
  • 一、SpringCloud项目简介 Spring Cloud: 微服务工具包,为开发者提供了在分布式系统的配置管理、服务发现、断路器、智能路由、微代理、控制总线等开发工具包。 Spring Boot: 旨在简化创建产品级的 Spring 应用...
  • 文章目录Mybatis添加日志事务管理分页传统方式分页插件缓存一级缓存二级缓存 来源于how2j github项目入口 Mybatis添加日志 有时候需要打印日志,知道mybatis执行了什么样的SQL语句,以便进行调试。这时,就需要开启...
  • 1. 缓存   DiskLruCache Java实现基于LRU的磁盘缓存,   在  防止多图OOM的时候用得上。 2.图片加载 Android Universal ...Fresco 一个用于管理图像和他们使用的内存的
  • Gerapy 是一款分布式爬虫管理框架,支持 Python 3,基于 Scrapy、Scrapyd、Scrapyd-Client、Scrapy-Redis、Scrapyd-API、Scrapy-Splash、Jinjia2、Django、Vue.js 开发,Gerapy 可以帮助我们: 更方便地控制爬虫运行...
  • 1.struts2是在webwork的基础上发展而来2.struts2提供拦截器3.struts2提供支持多种表现层技术,如jsp,freeMarker,welocity等...提供了全局范围,包范围和Action范围的国际化资源文件管理实现8.struts2提供类型转换器9.
  • 目前流行的新语言,新框架,构建工具简单梳理 目录 一:模块化 1:CommonJS——用于服务器环境 2:AMD——用于浏览器环境 3:CMD——用于浏览器环境 二:新框架和新语言 1:新框架——以减少开发难度、提升...
  • spring框架在java中应用十分广泛,他的成功源自于他的两项理念AOP和IOC IOC 在Spring中有一个容器用来管理java中的资源即java bean对象。通过配置文件或者注解的方式来对bean对象进行描述,从而完成对bean对象的创建...
  • 1、前言 ...本文聚焦在专业储备方面的简单总结,也是为自己的开发心得做一个梳理,结构如下: 数据结构 算法 系统环境 通信协议 开发语言 编译、部署 代码管理、测试 2、数据结构 一个服务端程序...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 681
精华内容 272
关键字:

梳理管理框架