blob: c1af442d8963a1dfa57eb4fdd12638dae5b6df2b [file] [log] [blame]
"use strict";(self.webpackChunkrocketmq_docs=self.webpackChunkrocketmq_docs||[]).push([[8406],{15680:(e,r,t)=>{t.d(r,{xA:()=>h,yg:()=>y});var a=t(96540);function s(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);r&&(a=a.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,a)}return t}function i(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?o(Object(t),!0).forEach((function(r){s(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function l(e,r){if(null==e)return{};var t,a,s=function(e,r){if(null==e)return{};var t,a,s={},o=Object.keys(e);for(a=0;a<o.length;a++)t=o[a],r.indexOf(t)>=0||(s[t]=e[t]);return s}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)t=o[a],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(s[t]=e[t])}return s}var n=a.createContext({}),c=function(e){var r=a.useContext(n),t=r;return e&&(t="function"==typeof e?e(r):i(i({},r),e)),t},h=function(e){var r=c(e.components);return a.createElement(n.Provider,{value:r},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var r=e.children;return a.createElement(a.Fragment,{},r)}},g=a.forwardRef((function(e,r){var t=e.components,s=e.mdxType,o=e.originalType,n=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),p=c(t),g=s,y=p["".concat(n,".").concat(g)]||p[g]||u[g]||o;return t?a.createElement(y,i(i({ref:r},h),{},{components:t})):a.createElement(y,i({ref:r},h))}));function y(e,r){var t=arguments,s=r&&r.mdxType;if("string"==typeof e||s){var o=t.length,i=new Array(o);i[0]=g;var l={};for(var n in r)hasOwnProperty.call(r,n)&&(l[n]=r[n]);l.originalType=e,l[p]="string"==typeof e?e:s,i[1]=l;for(var c=2;c<o;c++)i[c]=t[c];return a.createElement.apply(null,i)}return a.createElement.apply(null,t)}g.displayName="MDXCreateElement"},15878:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>n,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var a=t(58168),s=(t(96540),t(15680));const o={title:"Release Notes - Apache RocketMQ - Version 4.2.0",categories:["Release_Notes"],tags:["Release_Notes","RocketMQ","Version"]},i=void 0,l={permalink:"/zh/release-notes/2017/12/13/4.2.0",source:"@site/release-notes/2017-12-13-4.2.0.md",title:"Release Notes - Apache RocketMQ - Version 4.2.0",description:"* Source: rocketmq-all-4.2.0-source-release.zip [PGP] [MD5] [SHA1]",date:"2017-12-13T00:00:00.000Z",formattedDate:"2017\u5e7412\u670813\u65e5",tags:[{label:"Release_Notes",permalink:"/zh/release-notes/tags/release-notes"},{label:"RocketMQ",permalink:"/zh/release-notes/tags/rocket-mq"},{label:"Version",permalink:"/zh/release-notes/tags/version"}],readingTime:2.555,hasTruncateMarker:!0,authors:[],frontMatter:{title:"Release Notes - Apache RocketMQ - Version 4.2.0",categories:["Release_Notes"],tags:["Release_Notes","RocketMQ","Version"]},prevItem:{title:"Release Notes - Apache RocketMQ - Version 4.3.0",permalink:"/zh/release-notes/2018/07/24/4.3.0"},nextItem:{title:"Release Notes - Apache RocketMQ - Version 4.1.0-incubating",permalink:"/zh/release-notes/2017/06/02/4.1.0"}},n={authorsImageUrls:[]},c=[{value:"New Feature",id:"new-feature",level:2},{value:"Improvement",id:"improvement",level:2},{value:"Bug",id:"bug",level:2}],h={toc:c},p="wrapper";function u(e){let{components:r,...t}=e;return(0,s.yg)(p,(0,a.A)({},h,t,{components:r,mdxType:"MDXLayout"}),(0,s.yg)("admonition",{title:"Download the 4.2.0 release",type:"tip"},(0,s.yg)("ul",{parentName:"admonition"},(0,s.yg)("li",{parentName:"ul"},"Source: ",(0,s.yg)("a",{parentName:"li",href:"https://archive.apache.org/dist/rocketmq/4.2.0/rocketmq-all-4.2.0-source-release.zip"},"rocketmq-all-4.2.0-source-release.zip")," [",(0,s.yg)("a",{parentName:"li",href:"https://archive.apache.org/dist/rocketmq/4.2.0/rocketmq-all-4.2.0-source-release.zip.asc"},"PGP"),"] [",(0,s.yg)("a",{parentName:"li",href:"https://archive.apache.org/dist/rocketmq/4.2.0/rocketmq-all-4.2.0-source-release.zip.md5"},"MD5"),"] [",(0,s.yg)("a",{parentName:"li",href:"https://archive.apache.org/dist/rocketmq/4.2.0/rocketmq-all-4.2.0-source-release.zip.sha1"},"SHA1"),"]"),(0,s.yg)("li",{parentName:"ul"},"Binary: ",(0,s.yg)("a",{parentName:"li",href:"https://archive.apache.org/dist/rocketmq/4.2.0/rocketmq-all-4.2.0-bin-release.zip"},"rocketmq-all-4.2.0-bin-release.zip")," [",(0,s.yg)("a",{parentName:"li",href:"https://archive.apache.org/dist/rocketmq/4.2.0/rocketmq-all-4.2.0-bin-release.zip.asc"},"PGP"),"] [",(0,s.yg)("a",{parentName:"li",href:"https://archive.apache.org/dist/rocketmq/4.2.0/rocketmq-all-4.2.0-bin-release.zip.md5"},"MD5"),"] [",(0,s.yg)("a",{parentName:"li",href:"https://archive.apache.org/dist/rocketmq/4.2.0/rocketmq-all-4.2.0-bin-release.zip.sha1"},"SHA1"),"]"))),(0,s.yg)("p",null,"Below is a summary of the JIRA issues addressed in the 4.2.0 release of RocketMQ. For full documentation of the release, a guide to get started, please refer to ",(0,s.yg)("a",{href:"/docs/quickStart/01quickstart/"},"Quick Start"),"."),(0,s.yg)("h2",{id:"new-feature"},"New Feature"),(0,s.yg)("ul",null,(0,s.yg)("li",null,"[",(0,s.yg)("a",{href:"https://issues.apache.org/jira/browse/ROCKETMQ-28"},"ROCKETMQ-28"),"] - Support transportation layer security"),(0,s.yg)("li",null,"[",(0,s.yg)("a",{href:"https://issues.apache.org/jira/browse/ROCKETMQ-224"},"ROCKETMQ-224"),"] - Suppport log4j2 in Client"),(0,s.yg)("li",null,"[",(0,s.yg)("a",{href:"https://issues.apache.org/jira/browse/ROCKETMQ-294"},"ROCKETMQ-294"),"] - Support flow control by number and size dimensions for PushConsumer")),(0,s.yg)("h2",{id:"improvement"},"Improvement"),(0,s.yg)("ul",null,(0,s.yg)("li",null,"[",(0,s.yg)("a",{href:"https://issues.apache.org/jira/browse/ROCKETMQ-6"},"ROCKETMQ-6"),"] - Use logger for exceptions instead of e.printStackTrace()"),(0,s.yg)("li",null,"[",(0,s.yg)("a",{href:"https://issues.apache.org/jira/browse/ROCKETMQ-23"},"ROCKETMQ-23"),"] - Better to return true when MappedFileQueue#flush is successful"),(0,s.yg)("li",null,"[",(0,s.yg)("a",{href:"https://issues.apache.org/jira/browse/ROCKETMQ-96"},"ROCKETMQ-96"),"] - Rename tmp variable"),(0,s.yg)("li",null,"[",(0,s.yg)("a",{href:"https://issues.apache.org/jira/browse/ROCKETMQ-258"},"ROCKETMQ-258"),"] - Move benchmark scripts to distribution module"),(0,s.yg)("li",null,"[",(0,s.yg)("a",{href:"https://issues.apache.org/jira/browse/ROCKETMQ-259"},"ROCKETMQ-259"),"] - Reduce reflection calls when decode remoting command header"),(0,s.yg)("li",null,"[",(0,s.yg)("a",{href:"https://issues.apache.org/jira/browse/ROCKETMQ-263"},"ROCKETMQ-263"),"] - Reduce the cost of the unit test in OpenMessaging modules"),(0,s.yg)("li",null,"[",(0,s.yg)("a",{href:"https://issues.apache.org/jira/browse/ROCKETMQ-266"},"ROCKETMQ-266"),"] - Polish the exception message when consumerThreadMax is smaller than consumerThreadMin"),(0,s.yg)("li",null,"[",(0,s.yg)("a",{href:"https://issues.apache.org/jira/browse/ROCKETMQ-273"},"ROCKETMQ-273"),"] - Simplify the code when the method has no write operation"),(0,s.yg)("li",null,"[",(0,s.yg)("a",{href:"https://issues.apache.org/jira/browse/ROCKETMQ-279"},"ROCKETMQ-279"),"] - Add consistent check for commit log data and consume queue data when start the broker"),(0,s.yg)("li",null,"[",(0,s.yg)("a",{href:"https://issues.apache.org/jira/browse/ROCKETMQ-281"},"ROCKETMQ-281"),"] - Add check to prevent repeating starting broker"),(0,s.yg)("li",null,"[",(0,s.yg)("a",{href:"https://issues.apache.org/jira/browse/ROCKETMQ-307"},"ROCKETMQ-307"),"] - Change JVM arguments for java 8 and direct memory GC"),(0,s.yg)("li",null,"[",(0,s.yg)("a",{href:"https://issues.apache.org/jira/browse/ROCKETMQ-308"},"ROCKETMQ-308"),"] - Improve broker register speed by increasing socket buffer size of name server"),(0,s.yg)("li",null,"[",(0,s.yg)("a",{href:"https://issues.apache.org/jira/browse/ROCKETMQ-311"},"ROCKETMQ-311"),"] - Add fast failure mechanism for pull-request queue of broker"),(0,s.yg)("li",null,"[",(0,s.yg)("a",{href:"https://issues.apache.org/jira/browse/ROCKETMQ-312"},"ROCKETMQ-312"),"] - Use independent thread pool for QueryMessageProcessor"),(0,s.yg)("li",null,"[",(0,s.yg)("a",{href:"https://issues.apache.org/jira/browse/ROCKETMQ-315"},"ROCKETMQ-315"),"] - Enhance default settings of TLS"),(0,s.yg)("li",null,"[",(0,s.yg)("a",{href:"https://issues.apache.org/jira/browse/ROCKETMQ-323"},"ROCKETMQ-323"),"] - Release semaphore after callback is finished in async process"),(0,s.yg)("li",null,"[",(0,s.yg)("a",{href:"https://issues.apache.org/jira/browse/ROCKETMQ-324"},"ROCKETMQ-324"),"] - Expose an interface for client to specify the async call back executor"),(0,s.yg)("li",null,"[",(0,s.yg)("a",{href:"https://issues.apache.org/jira/browse/ROCKETMQ-327"},"ROCKETMQ-327"),"] - Add an interface to support decrypt a encrypted private key file")),(0,s.yg)("h2",{id:"bug"},"Bug"),(0,s.yg)("ul",null,(0,s.yg)("li",null,"[",(0,s.yg)("a",{href:"https://issues.apache.org/jira/browse/ROCKETMQ-231"},"ROCKETMQ-231"),"] - Fix the pull result size"),(0,s.yg)("li",null,"[",(0,s.yg)("a",{href:"https://issues.apache.org/jira/browse/ROCKETMQ-234"},"ROCKETMQ-234"),"] - Fix double-return bug in batch scenario"),(0,s.yg)("li",null,"[",(0,s.yg)("a",{href:"https://issues.apache.org/jira/browse/ROCKETMQ-238"},"ROCKETMQ-238"),"] - Make sure catch the exception in a periodic task of ScheduledExecutorService"),(0,s.yg)("li",null,"[",(0,s.yg)("a",{href:"https://issues.apache.org/jira/browse/ROCKETMQ-242"},"ROCKETMQ-242"),"] - Make sure the client could fetch nameSrvAddr periodly"),(0,s.yg)("li",null,"[",(0,s.yg)("a",{href:"https://issues.apache.org/jira/browse/ROCKETMQ-254"},"ROCKETMQ-254"),"] - Fix the random test failure of LoggerAppender and reduce the cost time"),(0,s.yg)("li",null,"[",(0,s.yg)("a",{href:"https://issues.apache.org/jira/browse/ROCKETMQ-260"},"ROCKETMQ-260"),"] - Fix the wrong lock when destroy IndexService"),(0,s.yg)("li",null,"[",(0,s.yg)("a",{href:"https://issues.apache.org/jira/browse/ROCKETMQ-270"},"ROCKETMQ-270"),"] - Make sure the slave broker could start normally if master broker has cleaned commit log"),(0,s.yg)("li",null,"[",(0,s.yg)("a",{href:"https://issues.apache.org/jira/browse/ROCKETMQ-277"},"ROCKETMQ-277"),"] - Fix the exception in getLocalHost when server hostname not in hosts"),(0,s.yg)("li",null,"[",(0,s.yg)("a",{href:"https://issues.apache.org/jira/browse/ROCKETMQ-284"},"ROCKETMQ-284"),"] - Make sure the sql filter is not conflict with old tag filter"),(0,s.yg)("li",null,"[",(0,s.yg)("a",{href:"https://issues.apache.org/jira/browse/ROCKETMQ-285"},"ROCKETMQ-285"),"] - Fix the file test error when make link"),(0,s.yg)("li",null,"[",(0,s.yg)("a",{href:"https://issues.apache.org/jira/browse/ROCKETMQ-291"},"ROCKETMQ-291"),"] - Fix the UnknownFormatConversionException of System.out.printf"),(0,s.yg)("li",null,"[",(0,s.yg)("a",{href:"https://issues.apache.org/jira/browse/ROCKETMQ-292"},"ROCKETMQ-292"),"] - Fix exit problem in main thread when args parsing problem occurs"),(0,s.yg)("li",null,"[",(0,s.yg)("a",{href:"https://issues.apache.org/jira/browse/ROCKETMQ-320"},"ROCKETMQ-320"),"] - Make sure no message loss when shutdown with dispatch behind"),(0,s.yg)("li",null,"[",(0,s.yg)("a",{href:"https://issues.apache.org/jira/browse/ROCKETMQ-321"},"ROCKETMQ-321"),"] - Make sure do not delete mapped files in the middle")))}u.isMDXComponent=!0}}]);