alibaba

dubbo 初始操作。简单理解1

蹲街弑〆低调 提交于 2019-11-29 01:59:54
目前来说 分布式系统已经十分普遍,国内常用的架构通常为两种,dubbo与springCloud。虽然两种小弟都在本地耍过,可没有实际经验,基本还停留在纸上谈兵的阶段。 如今公司使用了dubbo,特意做些笔录: 以下是我的个人理解: dubbo项目,在项目结构上,与传统的垂直分层项目基本一致。非要直观的说不同之处,那就是在最外层有一个pom.xml文件,如图 目前,dubbo项目又开始维护,并转移到了阿帕奇官网。只要项目结构不是特别奇葩,小弟用idea直接加载该pom文件 就可以导入所有的分支项目(因为该pom是父项目的)。 另:idea 已经集成了dubbo插件,下载安装后,可直接创建dubbo项目,与springCloud相比也不麻烦了。 因,公司再git仓库中没有properties文件,小弟我找了一圈的人去copy该文件,然后导入项目中,真是欲仙欲死。还好公司项目中规中矩。导入后没费什么劲就起来了。 启动没有使用tomcat 也没使用spring加载,而是dubbo官方推荐的main方法: 进入源码可发现: /* * Copyright 1999-2011 Alibaba Group. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file

EasyExcel写入百万级数据到多sheet---非注解方式

左心房为你撑大大i 提交于 2019-11-29 00:29:00
EasyExcel是什么? 快速、简单避免OOM的java处理Excel工具 参考 https://segmentfault.com/a/1190000019472781,https://github.com/alibaba/easyexcel 一、项目需求 从mongo库中查询数据,导出到excel文件中。但是动态导出的excel有多少列、列名是什么、有多少sheet页都需要动态获取。所以生成的excel也必须是动态生成,不能通过注解配置对象映射。而且写入的数据量,有可能达到100W级,使用传统的POI工具,需要把excel数据全部加载到内存空间,内存空间很容易OOM。所以选择了阿里的EasyExcel,据说可以高效的解决POI的OOM问题。 二、测试Demo 1、引入的pom依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>1.1.2-beta5</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.17</version> </dependency> 2、测试代码

buddo源码分析-transport组件之Netty(一)

廉价感情. 提交于 2019-11-28 17:38:08
dubbo 2.5.10 版本,netty仍然使用的是netty的3.10.5版本,我们从下面的代码可以看出,SPI默认使用的是“netty”,而不是“netty4”。 package com.alibaba.dubbo.remoting; import com.alibaba.dubbo.common.Constants; import com.alibaba.dubbo.common.URL; import com.alibaba.dubbo.common.extension.Adaptive; import com.alibaba.dubbo.common.extension.SPI; import javax.sound.midi.Receiver; /** * Transporter. (SPI, Singleton, ThreadSafe) * <p> * <a href="http://en.wikipedia.org/wiki/Transport_Layer">Transport Layer</a> * <a href="http://en.wikipedia.org/wiki/Client%E2%80%93server_model">Client/Server</a> * * @see com.alibaba.dubbo.remoting.Transporters

阿里程序员推荐的15 款常用开发者工具

生来就可爱ヽ(ⅴ<●) 提交于 2019-11-28 15:25:03
一、Java 线上诊断工具 Arthas 二、IDE 插件 Cloud Toolkit 三、混沌实验注入工具 ChaosBlade 四、Java 代码规约扫描插件 五、应用实时监控工具 ARMS 六、静态开源站点搭建工具 Docsite 七、Android 平台上的秒级编译方案 Freeline 八、性能测试工具 PTS 九、云效开发者工具KT 十、架构可视化工具 AHAS 十一、数据处理工具 EasyExcel 十二、iOS 类工具 HandyJSON 十三、云上资源和应用部署工具 EDAS Serverless 十四、数据库连接池 Druid 十五、Java 工具集 Dragonwell 《Netty 实现原理与源码解析 —— 精品合集》 《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》 《Spring MVC 实现原理与源码解析 —— 精品合集》 《Spring Boot 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》 《Java 面试题 —— 精品合集》 《Java 学习指南 —— 精品合集》 1. 概述 从人工到自动化,从重复到创新,技术演进的历程中,伴随着开发者工具类产品的发展。 阿里巴巴将自身在各类业务场景下的技术积淀,通过开源、云上实现或工具等形式对外开放,本文将精选了一些阿里巴巴的开发者工具

一些值得收藏的开源框架

只愿长相守 提交于 2019-11-28 14:54:48
阅读本文大概需要 7.2 分钟。 来源:segmentfault.com/a/1190000017346799 1. 分布式应用服务开发的一站式解决方案 Spring Cloud Alibaba Spring Cloud Alibaba 致力于提供分布式应用服务开发的一站式解决方案。 此项目包含开发分布式应用服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。 依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里分布式应用解决方案,通过阿里中间件来迅速搭建分布式应用系统。 地址:https://github.com/spring-cloud-incubator/spring-cloud-alibaba 2. 设计语言 & 前端框架 Ant Design Ant Design 是蚂蚁金服开发和正在使用的一套企业级的前端设计语言和基于 React 的前端框架实现。 它的特性:企业级金融产品的交互语言和视觉体系;丰富实用的 React UI 组件;基于 React 的组件化开发模式;背靠 npm 生态圈;基于 webpack 的调试构建方案,支持 ES6。 地址:https://github.com/ant-design/ant-design 3. JDBC

Dubble 01 架构模型&start project

余生长醉 提交于 2019-11-28 11:59:46
Dubbo 01 架构模型 传统架构 All in One 测试麻烦,微小修改 全都得重新测 单体架构也称之为单体系统或者是单体应用。就是一种把系统中所有的功能、模块耦合在一个应用中的架构方式。其优点为:项目易于管理、部署简单。缺点:测试成本高、可伸缩性差、可靠性差、迭代困难、跨语言程度差、团队协作难 聚合项目划分 单项目容易 因为某个功能导致整体oom 拆分完 咋实现 SOA 架构: Service-Oriented Architecture 面向服务的架构(SOA)是一个组件模型,它将应用程序拆分成不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。 在没有实施SOA的年代,从我们研发的角度来看,只能在代码级别复用,即Ctrl +V。SOA出现,我们开始走向了模块、业务线的复用。 SOA年代的典型实现: SOAP协议,CXF框架,XML传输 xsd,数据校验 SOA架构伴随着软件研发行业20年的发展,在最初的时候,大型it公司内部系统规模越来越大,IT系统越来越复杂,All in One单体架构的思想导致公司内项目业务和数据相互隔离,形成了孤岛。 最初,我们使用数据库作为项目之间数据交互和中转的平台

windows下新增项目本地通过git bash推送至远程github

北战南征 提交于 2019-11-28 08:11:05
  本地E盘workspace目录下新增了spring-cloud-alibaba-demo项目,还没有编译过,没有target等不需要推送至git的文件,所以就直接用git bash丢到github了。先在github上创建一个空项目,跟本地目录同名:   然后就纯命令行操作了,打开git bash: wulf@wulf00 MINGW64 /c/Users $ cd e: wulf@wulf00 MINGW64 /e $ cd workspace/spring-cloud-alibaba-demo/ wulf@wulf00 MINGW64 /e/workspace/spring-cloud-alibaba-demo $ git init Initialized empty Git repository in E:/workspace/spring-cloud-alibaba-demo/.git/ wulf@wulf00 MINGW64 /e/workspace/spring-cloud-alibaba-demo (master) $ git remote add origin https://github.com/wuxun1997/spring-cloud-alibaba-demo.git wulf@wulf00 MINGW64 /e/workspace/spring

一款阿里开源的 Java 诊断工具

自闭症网瘾萝莉.ら 提交于 2019-11-28 07:14:09
Arthas是什么鬼? Arthas是一款阿里巴巴开源的 Java 线上诊断工具,功能非常强大,可以解决很多线上不方便解决的问题。 Arthas诊断使用的是命令行交互模式,支持JDK6+,Linux、Mac、Windows 操作系统,命令还支持使用 tab 键对各种信息的自动补全,诊断起来非常利索。 这是它的官方网站: https://alibaba.github.io/arthas/index.html Github地址: https://github.com/alibaba/arthas Arthas能解决什么问题? 让我们来看下 Arthas 的官方解释。 当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决: 1、这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 2、我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 3、遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗? 4、线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!5、是否有一个全局视角来查看系统的运行状况? 6、有什么办法可以监控到JVM的实时运行状态? Arthas官网 看完是不是觉得太牛逼了? 特别是它可以在线反编译类,可以不用加日志在线调试跟踪问题代码。 既然这么牛逼,肯定有不少公司在使用吧

Alibaba限流熔断降级

假如想象 提交于 2019-11-28 05:07:55
title: Alibaba限流熔断降级 date: 2019-08-21 08:55:32 categories: 项目实战 tags: sentinel nacos spring cloud alibaba cover: https://www.github.com/OneJane/blog/raw/master/小书匠/1566389032757.png 基于spring cloud alibaba实战整合开发 限流 sentinel存储 < dependency > < groupId > org.springframework.cloud </ groupId > < artifactId > spring-cloud-starter-alibaba-sentinel </ artifactId > </ dependency > application.yml spring : application : name : ht-micro-record-service-user cloud : nacos : discovery : server-addr : 192.168.2.7 : 8848,192.168.2.7 : 8849,192.168.2.7 : 8850 sentinel : transport : port : 8719 dashboard : 192

Spring Cloud for Alibaba 之 Sentinel For 生产改造(5)

一笑奈何 提交于 2019-11-28 03:50:46
在上一篇中 Spring Cloud for Alibaba 之 简单集成 Sentinel (4) ,我只是在Demo 里面,简单的引入了Sentinel组件,Dashboard控制台。 这些数据都是保存在内存中,一旦应用重启,之前配置的规则、监控数据 都会重置。 生产实践中,运用Sentinel ,要解决2个问题: 1. 规则管理与推送 ,2. 监控数据的保存与展示。 因为资源问题(个人没有机器部署kafaka 与elasticsearch集群),本次主要展示规则管理。 一、 规则推送模式 官方推荐使用Push模式,将配置规则,存放在远程的配置中心,比如阿里的nacos, 具体为使用建议见官方wiki: 在生产环境中使用 Sentinel 规则流向为:配置中心控制台/Sentinel 控制台 → 配置中心 → Sentinel 数据源 → Sentinel 如下图: 二、Sentinel 客户端改造 sentinel 接入nacos 存储比较方便,在 可以参考官方的另外 wiki: 动态规则扩展 1. jar引入pom 我采用简单一点的方式,直接引入 spring-cloud-starter-alibaba-sentinel 与sentinel-datasource-nacos 组件 <dependency> <groupId>com.alibaba.cloud<